说明:“w”参数表示写入数据,每次执行将会全部覆盖原来的数据,其他参数说明如下:
r 只能读
r+ 可读可写 不会创建不存在的文件 从顶部开始写 会覆盖之前此位置的内容
w+ 可读可写 如果文件存在 则覆盖整个文件不存在则创建
w 只能写 覆盖整个文件 不存在则创建
a 只能写 从文件底部添加内容 不存在则创建
a+ 可读可写 从文件顶部读取内容 从文件底部添加内容 不存在则创建
----------------------------------------------------------------------------------------
encoding 参数指定数据存入的格式,写入和读取的时候编码格式需要一致-均为存入数据的编码格式,
json.dumps 序列化时对中文默认使用的ascii编码,ensure_ascii=False(默认为true),将启用原来的编码形式;
indent 设置缩进空格
data.json为当前py文件同目录下的一个文件
import re
import os
import json
if __name__ == '__main__':
data = {
"sites": {
"site": [
{
"id": "1",
"name": "菜鸟教程",
"url": "www.runoob.com"
},
{
"id": "2",
"name": "菜鸟工具",
"url": "c.runoob.com"
},
{
"id": "3",
"name": "Google",
"url": "www.google.com"
}
]
}
}
#写入数据
with open('data.json', 'w',encoding="utf-8") as f:
json.dump(data, f,ensure_ascii=False,indent=4)
#json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)
# 读取数据
with open('data.json', 'r',encoding="utf-8",errors="ignore") as f:
result = json.load(f)
print(result)
执行结果
生成的data.json文件