利用 Python 实现 JSON 文档与 Python 对象互相转换,可以使用 Python 内置的 json 模块完成,具体步骤如下:
将 Python 对象转换为 JSON 字符串
- 导入 json 模块
使用 JSON 的第一步是导入 json 模块,模块中包含了 4 个主要的函数,分别是:dump、dumps、load 和 loads。其中,dump 和 load 函数用于读写 JSON 文件,dumps 和 loads 函数则用于字符串和 Python 对象之间的转换。
import json
- 将 Python 对象转换为 JSON 字符串
使用 dumps 函数将 Python 对象转换为 JSON 字符串,dumps 函数的第一个参数是需要转换的 Python 对象,第二个参数 ensure_ascii=True 表示确保结果只包含 ASCII 字符。
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
json_str = json.dumps(my_dict, ensure_ascii=True)
print(json_str)
输出结果:
{"name": "John", "age": 30, "city": "New York"}
将 JSON 字符串转换为 Python 对象
- 导入 json 模块
同样的,使用 JSON 的第一步是导入 json 模块。
import json
- 将 JSON 字符串转换为 Python 对象
使用 loads 函数将 JSON 字符串转换为 Python 对象,loads 函数的第一个参数是需要转换的 JSON 字符串。
json_str = '{"name": "John", "age": 30, "city": "New York"}'
my_dict = json.loads(json_str)
print(my_dict)
输出结果:
{'name': 'John', 'age': 30, 'city': 'New York'}
示例说明
下面给出两个示例说明。
示例1
将 Python 对象转换为 JSON 字符串,并将结果写入 JSON 文件。
import json
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'}
with open('data.json', mode='w', encoding='utf-8') as f:
json.dump(my_dict, f, ensure_ascii=False)
输出结果:
{"name": "John", "age": 30, "city": "New York"}
示例2
从 JSON 文件中读取 JSON 字符串,并将其转换为 Python 对象。
import json
with open('data.json', mode='r', encoding='utf-8') as f:
json_str = f.read()
my_dict = json.loads(json_str)
print(my_dict)
输出结果:
{'name': 'John', 'age': 30, 'city': 'New York'}