目录
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它已经成为了现代Web应用程序中最常用的数据格式之一。在Python中,我们可以使用内置的json模块来处理JSON格式的文件。本文将介绍如何使用Python处理JSON格式的文件。
1. 读取JSON文件
在Python中,我们可以使用json模块的load()函数来读取JSON格式的文件。load()函数将JSON格式的字符串转换为Python对象。下面是一个读取JSON文件的示例代码:
import json
# 读取JSON文件
with open('data.json', 'r') as f:
data = json.load(f)
# 打印读取的数据
print(data)
上面的代码中,我们使用了Python的with语句来打开文件并自动关闭文件。json.load()函数将JSON格式的文件读取到Python对象data中。最后,我们打印读取的数据。
2. 写入JSON文件
在Python中,我们可以使用json模块的dump()函数将Python对象转换为JSON格式的字符串,并将其写入到文件中。下面是一个写入JSON文件的示例代码:
import json
# 定义一个Python字典
data = {
"name": "John",
"age": 30,
"city": "New York"
}
# 将Python字典写入JSON文件
with open('data.json', 'w') as f:
json.dump(data, f)
print("写入完成")
上面的代码中,我们定义了一个Python字典data,然后使用json.dump()函数将其写入到JSON文件中。最后,我们打印出“写入完成”。
3. 处理JSON数据
在Python中,我们可以使用json模块将JSON格式的字符串转换为Python对象。下面是一个处理JSON数据的示例代码:
import json
# 定义一个JSON字符串
json_str = '{"name": "steverocket", "age": 25, "city": "New York"}'
# 将JSON字符串转换为Python对象
data = json.loads(json_str)
# 打印Python对象
print(data) # {'name': 'steverocket', 'age': 25, 'city': 'New York'}
# 访问Python对象的属性
print(data['name']) # steverocket
print(data['age']) # 25
print(data['city']) # New York
上面的代码中,我们定义了一个JSON字符串json_str,然后使用json.loads()函数将其转换为Python对象data。最后,我们可以访问Python对象的属性,例如data['name']、data['age']和data['city']。
4. 格式化JSON数据
在Python中,我们可以使用json模块的dumps()函数将Python对象转换为JSON格式的字符串,并格式化输出。下面是一个格式化JSON数据的示例代码:
import json
# 定义一个Python字典
data = {
"name": "steverocket02",
"age": 26,
"city": "New York"
}
# 将Python字典转换为JSON格式的字符串,并格式化输出
json_str = json.dumps(data, indent=4)
# 打印JSON格式的字符串
print(json_str)
# 输出
# {
# "name": "steverocket02",
# "age": 26,
# "city": "New York"
# }
上面的代码中,我们使用json.dumps()函数将Python字典data转换为JSON格式的字符串,并使用indent参数指定缩进量。最后,我们打印格式化后的JSON字符串。
5. 文件读取写入带中文案例
import json, time
infos = {"_id": "description", "name": "python", "filename": "中文", "os": ["abcd", "hello", "www"], "blog": WEIXIN_URL}
infos["time"] = time.time() # 动态修改json文件内容
# 生成json文件
def write_json_file(file_name, infos):
with open(file_name, "w") as jsonf:
jsonf.write(json.dumps(infos))
def read_json_file(file_name):
# 读取json文件的内容
with open(file_name, 'r') as jsonf:
file_info = json.load(jsonf)
print(file_info, type(file_info))
filename = file_info["filename"]
print(filename)
infos = json.dumps(file_info, sort_keys=True, indent=4)
print(infos, type(infos))
if __name__ == '__main__':
file_name = "desc.json"
write_json_file(file_name, infos)
read_json_file(file_name)
生成的文件
输出内容:
{'_id': 'description', 'name': 'python', 'filename': '
中文', 'os': ['abcd', 'hello', 'www'], 'blog': 'https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q', 'time': 1684482364.7974849} <class 'dict'>
中文
{
"_id": "description",
"blog": "https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q",
"filename": "\u4e2d\u6587",
"name": "python",
"os": [
"abcd",
"hello",
"www"
],
"time": 1684482364.7974849
} <class 'str'>
总结
在Python中,我们可以使用json模块来处理JSON格式的文件。我们可以使用json.load()函数读取JSON文件,使用json.dump()函数将Python对象写入JSON文件。我们还可以使用json.loads()函数将JSON格式的字符串转换为Python对象,使用json.dumps()函数将Python对象转换为JSON格式的字符串,并格式化输出。掌握这些技巧可以使我们更好地处理JSON格式的数据。
更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。
或者点击下方链接