Python3 JSON 数据解析
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。
Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:
- json.dumps(): 对数据进行编码。
- json.loads(): 对数据进行解码。
在json的编解码过程中,python 的原始类型与json类型会相互转换
Python 编码为 JSON 类型转换对应表:
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str | string |
int, float, int- & float-derived Enums | number |
True | true |
False | false |
None | null |
JSON 编码为 Python 类型转换对应表:
JSON | Python |
---|---|
object | dict |
array | list |
string | str |
number (int) | int |
number (real) | float |
true | True |
false | False |
null | None |
Python 数据结构转换为JSON实例:
import json
# python 字典类型转换为JSON对象
data = {
'id' : '001',
'name' : '李子',
'sex' : 'female',
'major' : '软件工程'
}
json_data = json.dumps(data,ensure_ascii=False)
print("Python原始数据:",repr(data))
print("JSON对象:",json_data)
结果:
注意
:加上ensure_ascii=False
可以防止中文乱码
JSON 字典类型转换为python对象实例:
import json
# python 字典类型转换为JSON对象
data = {
'id' : '001',
'name' : '李子',
'sex' : 'female',
'major' : '软件工程'
}
json_data = json.dumps(data,ensure_ascii=False)
print("Python原始数据:",repr(data))
print("JSON对象:",json_data)
#JSON 字典类型转换为python 对象
py_data = json.loads(json_data)
print("py_data[name]:",py_data['name'])
print("py_data[major]:",py_data['major'])
结果:
处理JSON文件:
处理JSON文件,使用 json.dump() 和 json.load() 来编码和解码JSON数据
# 写入 JSON 数据
with open('data.json', 'w') as f:
json.dump(data, f)
# 读取数据
with open('data.json', 'r') as f:
data = json.load(f)