技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

json.dump()将Python字典对象转换为JSON格式写入文件

作者:admin    时间:2022-1-12 10:30:23    浏览:

大多数情况下,当你执行 GET 请求时,你会收到 JSON 格式的响应,你可以将 JSON 响应存储在文件中以供将来使用或供底层系统使用。

 json.dump()将Python字典对象转换为JSON格式写入文件
json.dump()将Python字典对象转换为JSON格式写入文件

例如,你有一个列表或字典或任何 Python 对象中的数据,并且你希望将其编码并以 JSON 的形式存储在一个文件中。

在此示例中,我们将 Python 字典转换为 JSON 格式并将其写入文件。

import json

# assume you have the following dictionary
developer = {
    "name": "admin",
    "salary": 9000,
    "email": "[email protected]"
}
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 编码数据后的文件
使用 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": "[email protected]"
}

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 数据写入文件。你可以根据需要更改 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": "[email protected]"
}

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":[email protected]}

您可能对以下文章也感兴趣

标签: Python  
  • IT热文
  • 站长推荐