与 PHP 一样,Python 提供了两个用于创建和解析 JSON 数据的函数。注:本节基于Python3 。
- json.dumps():将 Python 对象转换为 JSON 数据。
- json.loads():将 JSON 数据解析为 Python 对象。
json.dumps()
在 Python 中,您可以使用 json.dumps() 函数将 Python 对象转换为 JSON 数据。语法是:json.dumps(obj,skipkeys = False,ensure_ascii = True,check_circular = True,allow_nan = True,cls =无,缩进=无,分隔符=无,编码=“utf-8”,默认=无,sort_keys = False, **千瓦)
参数说明如下:- obj:要转换为 JSON 数据的 Python 对象。
- SkipKeys:默认值为False,如果dict中的key数据不是Python基本类型(str、unicode、int、long、float、bool、None),则报TypeError错误。设置为 True 可跳过类别键。
- Ensure_ascii:默认值为 True。也就是说,它输出 ASCLL 代码。设置为False则输出汉字。
- check_circular:如果该值为False,则跳过容器类型的循环引用检查,并且循环引用会导致溢出错误。
- allowed_nan:默认值为 True。当使用 JSON 规范之外的 Float 类型(例如 nan、inf、-inf)时,请将它们转换为 JavaScript 中的等效类型(例如 NaN、Infinity、-Infinity)。如果为 False,则会引发 ValueError。
- cls:用于指定自定义JSONEncoder子类来替换JSONCoder类。
- indent:数据会按照指定的值缩进显示,以便阅读更清晰。
- Separator:分隔符设置不同dict项之间的分隔符以及dict项的
,和 值之间的分隔符,并分别删除冒号:和逗号后面的所有空格。 - 编码:设置JSON数据的编码方式。默认为 UTF-8。
- 默认值:指定对象无法序列化时要调用的函数。
- sort_keys:True 值表示根据字典(a 到 z)对输出进行排序。
示例代码如下。
import json
dictionary = {"title":"JSONチュートリアル","author":"IT基礎","url":"https://it-kiso.com/","catalogue":["JSONとは","JSONPとは","JSON文法規則"]}
jsonString = json.dumps(dictionary, indent=4, ensure_ascii=False)
print(jsonString) 运行结果为: {
“title”: “通过 JSON”,
“作者”:“IT基础知识”,
“url”: “https://it-kiso.com/”,
“目录”: [
“什么是 JSON”,
“什么是 JSONP”,
《JSON语法规则》
]
}
json.load()
在 Python 中,您可以使用 json.loads() 函数将 JSON 数据转换为 Python 对象,语法如下:json.loads(s[, 编码[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])
参数说明如下:- s:要转换的JSON数据。可以是 str、bytes 或 bytearray。
- 编码:可选参数。设置 JSON 数据的编码方式。默认为 UTF-8。
- cls:可选参数。用于指定自定义 JSONCoder 子类来替换 JSONCoder 类。
- object_hook:可选参数。将函数的返回值替换为指定类型。您可以使用此函数来实现自定义解码器,例如 JSON-RPC。
- parse_float:可选参数。如果指定该参数,则在解码JSON数据时,符合float类型的字符串将被转换为指定的类型。
- parse_int:可选参数。如果指定该参数,则在解码JSON数据时,符合int类型的字符串将转换为指定类型。
- parse_constant:可选参数。如果指定该参数,则在解码JSON数据时遇到-Infinity、Infinity、NaN等字符串时,将调用指定的方法。
- object_pairs_hook:可选参数。结果以键和值的有序列表的形式返回。如果object_hook和object_pairs_hook一起指定,则根据设置先返回object_pairs_hook。
示例代码如下。
import json
json_str = '{"title":"JSONチュートリアル","author":"IT基礎","url":"https://it-kiso.com/","catalogue":["JSONとは","JSONPとは","JSON文法規則"]}'
data = json.loads(json_str)
print(data) 运行结果为:{‘title’: ‘关于 JSON’, ‘author’: ‘IT 基础知识’, ‘url’: ‘https://it-kiso.com/’, ‘catalog’: [‘什么是 JSON’, ‘JSONP 什么? ‘, ‘JSON语法规则’]}




![2021 年如何设置 Raspberry Pi Web 服务器 [指南]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)

