在 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", "model": "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", "completed": "True"}'
print(json.loads(json_str))
字符串被转成一个 Python 字典:
{'userId': '1', 'id': '1', 'title': 'Meet with Lisa', 'completed': 'True'}
这是一个更高级的例子,显示如何请求 API,并解码 JSON 数据:
import json
import requests
response = requests.get("https://jsonplaceholder.typicode.com/users")
users = json.loads(response.text)
print(users)
四、总结
我们已经展示了在 Python 中如何编码和解码 JSON 数据。

如果你有任何疑问,请通过以下方式联系我们:
微信:

微信群: 加上面的微信,备注微信群
QQ: 3217680847

原文 :https://linuxize.com/post/python-json/
版权声明:本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
