打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在 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 数据。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Python数据持久化:JSON| 编程派 | Coding Python
python对json的操作总结
python中的json、pickle
python json 中文
你必须会Python读写Json文件
一篇长文带你在Python里玩转Json数据
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服