Python如何处理JSON文件?本文带你了解如何使用内置的 json 模块在 Python 中保存(序列化)和加载(反序列化)JSON 文件。
JSON(JavaScript Object Notation)是一种轻量级的开放标准数据交换文件格式,它使用人类可读的文本来传输数据。
尽管你可能会从名称中得出结论,它是一种 Javascript 数据格式。嗯,不完全是,JSON 是一种完全独立于语言的文本格式,并使用大多数流行的编程语言(如 Python)所熟悉的约定。
如何在Python中处理JSON文件?在本教程中,你将使用 Python 执行以下操作:
- 保存 JSON 数据
- 加载 JSON 数据
Python处理JSON文件示例:保存 JSON 数据Python 字典与 JSON 格式非常相似,事实上,你可以用很少的代码行保存一个字典:
import json# example dictionary to save as JSON
data = https://www.lsbin.com/{"first_name": "John",
"last_name": "Doe",
"email": "john@doe.com",
"salary": 1499.9, # just to demonstrate we can use floats as well
"age": 17,
"is_real": False, # also booleans!
"titles": [
"The Unknown", "Anonymous"] # also lists!
}# save JSON file
# 1st option
with open("data1.json", "w") as f:
json.dump(data, f)
Python如何处理JSON文件?执行上述代码后,你会注意到data1.json文件出现在你的工作目录中。我们以写入模式打开文件,并使用该
json.dump()
函数将 Python 字典作为 JSON 格式的流序列化到打开的文件中。生成的文件将如下所示:
{
"first_name": "John",
"last_name": "Doe",
"email": "john@doe.com",
"salary": 1499.9,
"age": 17,
"is_real": false,
"titles": [
"The Unknown",
"Anonymous"
]
}
这是另存为 JSON 的一种方式,你也可以使用
json.dumps()
函数:# 2nd option
with open("data2.json", "w") as f:
f.write(json.dumps(data, indent=4))
该
json.dumps()
函数将字典作为 JSON 解析字符串返回,你可能希望此字符串用于其他用途,我们只是将其保存到文件中只是为了让你知道它确实存在。注意我
indent=4
这次添加了一个参数作为json.dumps()
函数,这将漂亮地打印 JSON 数组元素和对象成员,如果你使用indent=0
,它只会打印新行,如果它是None
(默认),那么它会被转储到一行中(不是人类可读的)。?他indent
的关键字中都存在dump()
和dumps()
功能。处理非 ASCII 字符
Python处理JSON文件示例:如果你的数据包含非 ASCII 字符,并且你不希望 JSON 文件中包含 Unicode 实例(例如
\u0623
),那么你应该传递ensure_ascii=False
给json.dump()
函数:unicode_data = https://www.lsbin.com/{"first_name": "????",
"last_name": "???"
}with open("data_unicode.json", "w", encoding="utf-8") as f:
json.dump(unicode_data, f, ensure_ascii=False)
【如何在Python中处理JSON文件(详细示例介绍)】结果文件:
{"first_name": "????", "last_name": "???"}
加载 JSON 数据Python如何处理JSON文件?反序列化 JSON 文件并将它们加载到 Python 中非常简单,以下代码加载之前保存的 JSON 文件:
# read a JSON file
# 1st option
file_name = "data1.json"
with open(file_name) as f:
data = https://www.lsbin.com/json.load(f)print(data)
该
json.load()
函数将自动返回一个 Python 字典,这简化了我们处理 JSON 文件的工作,输出如下:{'first_name': 'John', 'last_name': 'Doe', 'email': 'john@doe.com', 'salary': 1499.9, 'age': 17, 'is_real': False, 'titles': [
'The Unknown', 'Anonymous']}
同样,你也可以使用
json.loads()
函数来读取字符串:# 2nd option
file_name = "data2.json"
with open(file_name) as f:
data = https://www.lsbin.com/json.loads(f.read())print(data)
所以我们首先使用
read()
方法读取文件内容,然后将其传递给json.loads()
函数来解析它。简单的真实示例如何在Python中处理JSON文件?在本节中,我们将使用 API 请求到远程 Web 服务器,并将结果数据保存到 JSON 文件中,这是完整的Python处理JSON文件示例代码:
import requests
import json# make API request and parse JSON automatically
data = https://www.lsbin.com/requests.get("https://jsonplaceholder.typicode.com/users").json()
# save all data in a single JSON file
file_name = "user_data.json"
with open(file_name, "w") as f:
json.dump(data, f, indent=4)
print(file_name, "saved successfully!")# or you can save each entry into a file
for user in data:
# iterate over `data` list
file_name = f"user_{user[
'id']}.json"
with open(file_name, "w") as f:
json.dump(user, f, indent=4)
print(file_name, "saved successfully!")# load 2nd user for instance
file_name = "user_2.json"
with open(file_name) as f:
user_data = https://www.lsbin.com/json.load(f)print(user_data)
print("Username:", user_data[
"username"])
注意:要运行上述代码,你需要通过以下方式安装请求库:pip install requests
结论Python如何处理JSON文件?现在你知道如何使用
dump()
,dumps()
,load()
和loads()
功能的JSON模块,你必须使用Python JSON数据的工作能力。作为开发人员,你可能必须经常与它进行交互,你会多次遇到 JSON,尤其是在使用我们在示例中显示的REST API时,或者当你从 Web 抓取数据时。
本教程中的每个代码都包含在完整的代码页中,请查看!
推荐阅读
- 如何使用Python在FTP服务器中下载和上传文件()
- 如何在Python中使用正则表达式(代码示例教程)
- Python如何使用日志功能(代码示例教程)
- 如何用Python制作聊天应用程序(实现代码示例)
- 如何在Python中删除电子邮件(代码实现示例)
- Python中的守护线程是什么(如何理解和使用?)
- 如何在Python中生成和读取二维码(实现代码示例)
- 戴尔Latitude 5290二合一电脑评测体验详情
- 导致笔记本电脑发烧发热的原因有哪些?