在Python中解析JSON数据
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在Python中解析JSON数据
JSON 是一个人类可读的,基于文本的数据格式。
它独立于语言,并且可以在应用之间进行数据交换。
在这篇文章中,我们将会解释在Python 中如何解析JSON 数据。
一、Python JSON
json模块是Python 标准库的一部分,它允许你对JSON 数据进行编码和解码。
JSON 是一个字符串,代表数据。
编码或者序列化意味着将一个Python 对象转换成 JSON 字符串,以便存储到文件中或者通过网络进行传输。
解码或者反序列化和编码相反,将JSON 字符串转换成Python 对象。
下面是一个表格,表示 Python 对象和 JSOn 对应的数据结构:Python JSON
dict object
list, tuple array
str string
int, float number
True true
False false
None null
想要处理 JSON,在你文件的顶部简单导入 JSON 模块:
import json
二、在 Python 中编码 JSON
json模块有两个方法用来将 Python 对象编码成 JSON,dump()和dumps()。
dump() 方法将输出发送到文件中。
它有两个参数,用来编码的对象,和文件。
下面是一个例子:
data = {
"country": "Germany",
"vehicle": {
"name": "Volkswagen",
"model": "T-Roc"
}
}
with open("file.json", "w") as file:
json.dump(data, file)
如果你运行脚本,这将创建一个名为file.json
{"country": "Germany", "vehicle": {"name": "Volkswagen", "m odel": "T-Roc"}}
dumps()方法和dump()一样,但是不会将输出发送到文件,而是返回一个字符串:
data = {
"country": "Germany",
"vehicle": {
"name": "Volkswagen",
"model": "T-Roc"
}
}
json.dumps(data)
输出:
'{"country": "Germany", "vehicle": {"name": "Volkswagen", " model": "T-Roc"}}'
两个方法都有相同的关键字参数。
如果你想调试JSON 数据,你可能想指定缩进:
data = {
"country": "Germany",
"vehicle": {
"name": "Volkswagen",
"model": "T-Roc"
}
}
print(json.dumps(data, indent=2))
输出:
{
"country": "Germany",
"vehicle": {
"name": "Volkswagen",
"model": "T-Roc"
}
}
三、在 Python 中解码 JSON
想要将 JSON 数据转换成 Python 对象,使用load()和loads()方法。
load()方法从文件中读取 JSON 结构,并转换成 Python 对象。
比如说我们有下面的 JSON 文件:
[
{
"userId": 1,
"id": 1,
"title": "Meet with Lisa",
"completed": true
},
{
"userId": 1,
"id": 2,
"title": "Design a prototype",
"completed": false
}
]
想要将 JSON 数据转换成一个 Python ,你可以像下面一样:
import json
with open('file.json') as f:
data = json.load(f)
type(data)
这个JSON 数据被转换成一个Python 列表,你可以在你的代码中使用它。
输出:
<class 'list'>
loads() 方法将一个JSON 字符串转换成一个 Python 对象:
import json
json_str= '{"userId": "1", "id": "1", "title": "Meet with Lisa", "c ompleted": "True"}'
print(json.loads(json_str))
字符串被转成一个 Python 字典:
{'userId': '1', 'id': '1', 'title': 'Meet with Lisa', 'completed': 'Tru
e'}
这是一个更高级的例子,显示如何请求API,并解码JSON 数据:import json
import requests
response = requests.get("/users")
users = json.loads(response.text)
print(users)
四、总结
我们已经展示了在 Python 中如何编码和解码 JSON 数据。