json.dump()将Python字典对象转换为JSON格式写入文件
作者:admin 时间:2022-1-12 10:30:23 浏览:大多数情况下,当你执行 GET 请求时,你会收到 JSON 格式的响应,你可以将 JSON 响应存储在文件中以供将来使用或供底层系统使用。
json.dump()将Python字典对象转换为JSON格式写入文件
例如,你有一个列表或字典或任何 Python 对象中的数据,并且你希望将其编码并以 JSON 的形式存储在一个文件中。
在此示例中,我们将 Python 字典转换为 JSON 格式并将其写入文件。
import json
# assume you have the following dictionary
developer = {
"name": "admin",
"salary": 9000,
"email": "admin@webkaka.com"
}
print("Started writing JSON data into a file")
with open("developer.admin", "w") as write_file:
json.dump(developer, write_file) # encode dict into JSON
print("Done writing JSON data into .json file")
输出:
Started writing JSON data into a file
Done writing JSON data into developerDetail.json file
使用 Python 编写 JSON 编码数据后的文件
json.dump()
的语法
json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
用途:用于将 Python 对象作为 JSON 格式的数据写入文件。
使用的参数:
obj
是一个Python可序列化对象,你希望将其转换为JSON格式。fp
是一个文件指针,用于将 JSON 格式的数据写入文件。Python json 模块总是产生字符串对象,而不是字节对象,因此,fp.write()
必须支持字符串输入。- 如果
skipkeys
为真(默认值:假),则不属于基本类型的字典键 (str, int, float, bool, None) 将被跳过而不是引发一个 TypeError。例如,如果你的字典键之一是自定义 Python 对象,则在将字典转换为 JSON 时将省略该键。 - 如果
ensure_ascii
为 true(默认值),则保证输出所有传入的非 ASCII 字符都已转义。如果ensure_ascii为 false,这些字符将按原样输出。 allow_nan
默认情况下为 True,因此将使用它们的 JavaScript 等效项(NaN、Infinity、-Infinity)。如果为 False,则序列化超出范围的浮点值(nan、inf、-inf)将是一个 ValueError。indent
参数用于漂亮地打印 JSON 以使其更具可读性。默认值为(', ', ': '). 要获得最紧凑的 JSON 表示,你应该使用(',', ':') 消除空格。- 如果
sort_keys
为真(默认:假),则字典的输出将按键排序。
将缩进和漂亮打印的 JSON 数据写入文件
如果用户想要读取一个 JSON 文件,那么它必须是可读且组织良好的,因此使用它的人将对数据结构有更好的理解。dump()
方法提供以下参数来漂亮打印 JSON 数据。
- 该缩进参数指定在一行的开头使用的空间。
json.dump()
方法的separator
参数,你可以指定键和值之间的任何分隔符。- 在
sort_keys
通过按键JSON数据进行排序。
让我们看看如何将打印精美的 JSON 数据写入文件。
import json
developer = {
"name": "admin",
"salary": 9000,
"skills": ["Raspberry pi", "Machine Learning", "Web Development"],
"email": "admin@webkaka.com"
}
with open("developerPrettyPrint.json", "w") as write_file:
json.dump(developer, write_file, indent=4, separators=(", ", ": "), sort_keys=True)
print("Done writing pretty printed JSON data into a file")
输出:
Done writing pretty printed JSON data into a file
写入漂亮打印的 JSON 数据后的文件
通过更改 JSON 键值分隔符来节省文件空间的紧凑编码
如果你不是在读取文件,而只需要将 JSON 数据写入文件以供底层系统或应用程序使用,则可以通过紧凑编码将 JSON 数据写入文件。
我们可以通过更改 JSON 键值分隔符将 JSON 数据写入文件。你可以根据需要更改 JSON 表示。使用separator
参数,你可以指定键和值之间的任何分隔符。
为了限制 JSON 文件的大小,我们可以删除 JSON 键值之间的额外间距进行紧凑编码(separators=(',', ':')
)。使用此分隔符,我们可以从 JSON 中删除空格,以使 JSON 更紧凑,并节省通过 HTTP 发送的字节。
现在,让我们看看这个例子。
import json
developer_dict = {
"name": "admin",
"salary": 9000,
"skills": ["Raspberry pi", "Machine Learning", "Web Development"],
"companies": ["Google", "Facebook", "IBM"],
"email": "admin@webkaka.com"
}
print("Started writing compact JSON data into a file")
with open("developerDetailCompact.json", "w") as write_file:
json.dump(developer_dict, write_file, separators=(',', ':'))
print("Done writing compact JSON data into json file")
输出:
Started writing compact JSON data into a file
Done writing compact JSON data into .json file
文件内容:
{"name":"admin","salary":9000,"skills":["Raspberry pi","Machine Learning","Web Development"],"companies":["Google","Facebook","IBM"],"email":admin@webkaka.com}
您可能对以下文章也感兴趣
- json.dumps()将Python字典对象转换为JSON格式的字符串
- Python使用DjangoJSONEncoder或json_util把日期时间序列化为JSON
- Python编写自定义方法将日期时间转为JSON
- 两种方法Python将日期时间DateTime序列化为JSON
- Python如何直接访问JSON嵌套键
- 两种方案 Python 解决unicode、utf-8编码问题
- Python将Unicode或非ASCII数据序列化为JSON原样字符串
- 4种方法使Python类JSON可序列化
- 5种方法Python将JSON转换为自定义Python对象/类
- 区别:Python json.load()和json.loads()读取JSON
标签: Python
- 站长推荐