导入Python中的JSON库
Python 船与一个强大和优雅的 JSON 库,以帮助您解码和编码 JSON。它可以导入:
import json
这个库是Python的一部分,所以你不需要安装它与Pip包经理。
如何解析 Python 中的 Json
解析一串 JSON 数据(也称为解码 JSON)就像使用一样简单。负载是负载字符串的缩头。json.loads(…)
它转换:
- 字典对象
- 阵列列表,
- 布尔斯,整数, 浮动, 和字符串被识别为他们是什么, 并会转换成正确的类型在 Python
- 任何将转换为蟒蛇的类型
null
None
下面是一个在操作中的示例:json.loads
>>> import json
>>> jsonstring = '{"name": "erik", "age": 38, "married": true}'
>>> data = json.loads(jsonstring)
>>> print(data)
{'name': 'erik', 'age': 38, 'married': True}
输出可能看起来像一个字符串,但它实际上是一个字典,你可以在你的代码中使用,在我们的页面上解释的Python字典。例如:
>>> type(data)
<class 'dict'>
>>> print('Hello', data['name'], "you're", data['age'], 'years old')
Hello erik you're 38 years old
编码杰森与蟒蛇
用 Python 编码 JSON 数据和解码一样简单。使用("转储到字符串"的简称为)将由字典、列表和其他原生类型组成的 Python 对象转换为字符串:json.dumps(…)
>>> data = {'name': 'erik', 'age': 38, 'married': True}
>>> json.dumps(data)
'{"name": "erik", "age": 38, "married": true}'
这是相同的文档,转换回字符串!如果您想让您的 JSON 文档更适合人类阅读,请使用凹痕选项。它将很好地格式化JSON,使用空间字符:
>>> data = {'name': 'erik', 'age': 38, 'married': True}
>>> print(json.dumps(data, indent=2))
{
"name": "erik",
"age": 38,
"married": true
}
漂亮的打印杰森与杰森模块
Python 的 JSON 模块也可以从命令行中使用。它将验证和漂亮打印您的JSON:
$ echo "{ \"name\": \"Monty\", \"age\": 45 }" | \
python3 -m json.tool
{
"name": "Monty",
"age": 45
}
您可能也有兴趣使用jq工具,虽然!
如何在巨蛇中读取 JSON 文件
此外,还有一个功能称为(没有s)。它将加载来自文件的数据。如果您想将 JSON 文件的内容读入 Python 并解析,请使用以下示例:json.loads
json.load
with open('data.json') as json_file:
data = json.load(json_file)
...
如何将 JSON 写到 Python 中的文件
该功能用于将数据写入 JSON 文件。json.dump
data = {'name': 'Eric', 'age': 38 }
with open('data.json', 'w') as json_file:
json.dump(data, json_file)
经常问的问题
如何将列表(阵列)转换为Python中的JSON?只需使用上述方法即可。和功能接受字典和列表json.dump
json.dumps
如何将口述或字典转换为Python中的JSON?类似于阵列,所以使用或在字典上。json.dump
json.dumps
如何对Python中的JSON输出进行排序?转储和转储功能都接受一个称为"sort_keys"的选项,例如: 。json.dumps(data, sort_keys=True)
JSON库是否输出单码数据?默认情况下:没有。库输出 ASCII,并将转换不属于 ASCII 的字符。如果您要输出 Unicode,则将ensure_ascii设置为"错误"。例:json.dumps(data, ensure_ascii=False)