Python解析json文件
程序员文章站
2024-02-03 10:26:40
...
日常编程工作中,JSON是接口传递数据的默认格式,对json文件的解析是很常见的步骤。Python的第三方库JSON让解析json文件变得很简单。
1,读取json文件
json文件内容本质上字符串,当我们拿到json文件后只有转换成字典才方便使用,方便获取需要的字段;
import json
# json示例
{
"version": "1.0",
"modelinfo": [
{
"versionid": "V1",
"netypes": ["ITBBU"],
"subtypes": ["NR"]
}
]
}
{'version': '1.0',
'modelinfo': [{'versionid': 'V1', 'netypes': ['ITBBU'], 'subtypes': ['NR']}]}
jsonpath = "E:/temp_files/test.json"
with open(jsonpath, 'r', encoding='utf-8') as f:
jsondata = json.load(f)
print('jsondata 数据类型:',type(jsondata))
jsondata 数据类型: <class 'dict'>
# json文件转换成字典后,我们就可以向字典一样取数据了
version = jsondata["version"]
print('version:',version)
netypes = jsondata["modelinfo"][0]["netypes"]
print('netypes: ',netypes)
version: 1.0
netypes: ['ITBBU']
2 将字典转换成json 文件
# 将字典写入到json文件中
newdict = {"test": [1,2,"English","中文"],"date": "2020/8/20 12:12:10"}
with open(jsonpath, 'a', encoding='utf-8') as f:
json.dump(newdict, f, ensure_ascii=False) # 如果ensure_ascii 为false,则返回值可以包含非ascii值
3 将json字符串转换成字典
json_str = '{"test": [1, 2, "English", "中文"], "date": "2020/8/20 12:12:10"}'
print('这是转换后的数据:',json.loads(json_str)) # 注意是loads,有s
print('这是转换后的数据类型:',type(json.loads(json_str)))
这是转换后的数据: {'test': [1, 2, 'English', '中文'], 'date': '2020/8/20 12:12:10'}
这是转换后的数据类型: <class 'dict'>
4 将字典转换成json字符串
dicts = {
"key1": "asdf",
"key2": "jkl"
}
print('这是将字典转换之后的数据:',json.dumps(dicts,ensure_ascii=False))
print('这是将字典转换之后的数据类型:',type(json.dumps(dicts,ensure_ascii=False)))
这是将字典转换之后的数据: {"key1": "asdf", "key2": "jkl"}
这是将字典转换之后的数据类型: <class 'str'>
总结:不管是dump还是load,带s的都是和字符串相关的,不带s的都是和文件相关的。
上一篇: IP地址的数字代表的含义是什么?
下一篇: Oracle笔记之权限管理