前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在 Python 中解析 JSON 数据

在 Python 中解析 JSON 数据

作者头像
雪梦科技
发布2020-06-28 11:10:41
17K0
发布2020-06-28 11:10:41
举报
文章被收录于专栏:ITCoderITCoder

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 数据。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年06月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Python JSON
  • 二、在 Python 中编码 JSON
  • 三、在 Python 中解码 JSON
  • 四、总结
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档