将 Python 对象转换为 JSON 的方法步骤如下:
- 用
json.dumps()
方法将 Python 对象转换成一个字符串,该方法会返回一个字符串对象,格式化的模板可以通过参数进行指定,常用的格式化方法有两种,分别为indent
和separators
。
indent
参数可以定义缩进大小,使得 JSON 字符串更易读,对于比较大的对象,JSON 字符串会比较臃肿,这时通过 indent
参数指定缩进的大小可以更方便地观察 JSON 字符串,例如:
import json
data = {'name': 'Tom', 'age': 18}
json_str = json.dumps(data, indent=4)
print(json_str)
输出结果为:
{
"name": "Tom",
"age": 18
}
使用 separators
参数也可以定义分隔符,可以通过 separators
参数来控制输出数据的格式,指定分隔符的具体方法为设置元组对象,元组第一个元素表示元素之间的分隔符,第二个元素表示项与值之间的分隔符,例如:
import json
data = {'name': 'Tom', 'age': 18}
json_str = json.dumps(data, separators=(',', ':'))
print(json_str)
输出结果为:
{"name":"Tom","age":18}
- 将转换的 JSON 字符串写入文件,使用
json.dump()
方法将对象输出到文件中,其过程类似于json.dumps()
,但更为简单,例如:
import json
data = {'name': 'Tom', 'age': 18}
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f)
- 对于 JSON 字符串转 Python 对象,使用
json.loads()
方法,该方法将 JSON 字符串反序列化为 Python 对象,例如:
import json
json_str = '{"name": "Tom", "age": 18}'
data = json.loads(json_str)
print(data)
输出结果为:
{'name': 'Tom', 'age': 18}
另外,还可以使用 json.load()
方法从文件中读取 JSON 字符串并反序列化为 Python 对象,例如:
import json
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
print(data)
以上就是 Python 对象转换为 json 的方法步骤的详细讲解,下面给出两个示例说明:
- 示例1:将一个 Python 对象转换为 JSON 格式字符串并输出
import json
python_obj = {
"name": "Tom",
"age": 18,
"gender": "male",
"interests": ["reading", "swimming", "music"],
"address": {
"city": "Beijing",
"province": "Beijing",
"country": "China"
}
}
json_str = json.dumps(python_obj, indent=4)
print(json_str)
输出结果为:
{
"name": "Tom",
"age": 18,
"gender": "male",
"interests": [
"reading",
"swimming",
"music"
],
"address": {
"city": "Beijing",
"province": "Beijing",
"country": "China"
}
}
- 示例2:从一个包含 JSON 格式字符串的文件中读取数据并转换为 Python 对象
import json
with open('data.json', 'r', encoding='utf-8') as f:
json_str = f.read()
data = json.loads(json_str)
print(data)
假设文件 data.json
的内容为:
{
"name": "Tom",
"age": 18,
"gender": "male",
"interests": [
"reading",
"swimming",
"music"
],
"address": {
"city": "Beijing",
"province": "Beijing",
"country": "China"
}
}
输出结果为:
{'name': 'Tom', 'age': 18, 'gender': 'male', 'interests': ['reading', 'swimming', 'music'], 'address': {'city': 'Beijing', 'province': 'Beijing', 'country': 'China'}}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python对象转换为json的方法步骤 - Python技术站