Python3中 JSON 数据解析
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。
Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数:
json.dumps(): 对数据进行编码,帮python中数据结构转换为json格式。
json.loads(): 对数据进行解码,帮json对象转换为python数据结构。
在 json 的编码解码过程中,Python 的原始类型与 json 类型会相互转换,具体的转化对照如下:
JSON 解码为 Python 类型转换对应表:
JSON | Python |
---|---|
object | dict |
array | list |
string | str |
number (int) | int |
number (real) | float |
true | True |
false | False |
null | None |
Python 编码为 JSON 类型转换对应表:
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str | string |
int, float, int- & float-derived Enums | number |
True | true |
False | false |
None | null |
下面演示python数据结构转换为JSON
import json
data = {
"age":35,
"name":"phper163",
"man":True,
"nums":[3,5,7],
'url':"https://www.phper163.com/"
}
json_str = json.dumps(data)
print('python 原始数据:',repr(data))
print('json对象:',json_str)
#帮json数据写入到文件中
with open('demo.json','w',encoding="utf-8") as f:
f.write(json_str)
下面演示将一个JSON编码的字符串转换回一个Python数据结构
import json
#demo.json文件内容
#{"age": 35, "name": "phper163", "man": true, "nums": [3, 5, 7], "url": "https://www.phper163.com/"}
with open('demo.json','r') as f:
json_str = f.read()
data = json.loads(json_str)
print(data)
print("data['name']",data['name'])
如果你要处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码JSON数据。例如:
# 直接将data数据转换为json格式并写入文件
with open('data.json', 'w') as f:
json.dump(data, f)
# 直接从文件读取json数据并转换为python数据结构
with open('data.json', 'r') as f:
data = json.load(f)
发表评论 取消回复