Python json库使用
import json #导入json库
函数 | 功能 |
---|---|
json.dumps | 将python对象转换成json格式 |
json.loads | 将json数据解码为python对象 |
- json.dumps:将python对象转换成json格式
用法:json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)
示例:
import json
data = [{'name': '张三', 'age': '12'}, {'name': '李四', 'age': '11'}]
data1 = json.dumps(data)
print(data1)
结果:>>>[{"name": "\u5f20\u4e09", "age": "12"}, {"name": "\u674e\u56db", "age": "11"}]
接下来演示几个参数的用法:
ensure_ascii用于选择是否将汉字转化为unicode编码,默认为True;
sort_keys用于是否按首字母排序,默认为False;
indent用于规定输出格式前有几个空白字符,默认为None;
separators用于选择分隔符;
(以下示例注意观察引号的变化)
1.1 ensure_ascii,sort_keys的使用:
import json
data = [{'name': '张三', 'age': '12'}, {'name': '李四', 'age': '11'}]
data1 = json.dumps(data, sort_keys=True, ensure_ascii=False)
print(data1)
结果:>>>[{"age": "12", "name": "张三"}, {"age": "11", "name": "李四"}]
1.2 indent的使用:
import json
data = [{'name': '张三', 'age': '12'}, {'name': '李四', 'age': '11'}]
data1 = json.dumps(data, sort_keys=True, ensure_ascii=False, indent=1)
print(data1)
结果:>>>
[
{
"age": "12",
"name": "张三"
},
{
"age": "11",
"name": "李四"
}
]
令indent=5,输出结果为>>>
[
{
"age": "12",
"name": "张三"
},
{
"age": "11",
"name": "李四"
}
]
1.3 separators的使用:
import json
data = [{'name': '张三', 'age': '12'}, {'name': '李四', 'age': '11'}]
data1 = json.dumps(data, sort_keys=True, ensure_ascii=False, indent=5, separators=(',', ':'))
print(data1)
结果:>>>
[
{
"age":"12",
"name":"张三"
},
{
"age":"11",
"name":"李四"
}
]
重新选择separators参数:
import json
data = [{'name': '张三', 'age': '12'}, {'name': '李四', 'age': '11'}]
data1 = json.dumps(data, sort_keys=True, ensure_ascii=False, indent=5, separators=(':', ','))
print(data1)
结果:>>>
[
{
"age","12":
"name","张三"
}:
{
"age","11":
"name","李四"
}
]
1.4用dump方法将json数据写入文件:
import json
data = [{'name': '张三', 'age': '12'}, {'name': '李四', 'age': '11'}]
with open('1.txt', 'w') as f:
json.dump(data, f, ensure_ascii=False)
结果:>>>会生成一个1.txt文件,内容即为对应的上述json数据。
注:此处也能将代码1.txt更改为1.json,输出就为一个对应的json文件。
- json.loads: 将json数据解码为python对象
用法:
示例:
import json
data = '[{"name":"张三","age":"12"},{"name":"李四","age":"11"}]'
data2 = json.loads(data)
print(data2)
结果:>>>[{'name': '张三', 'age': '12'}, {'name': '李四', 'age': '11'}]
2.1用load方法可以读取包含json对象的json文件:
示例:
import json
with open('1.json') as f:
data = json.load(f)
print(data)
结果:>>>[{'name': '张三', 'age': '12'}, {'name': '李四', 'age': '11'}]