json - 在 python 中创建一个 JSON 文件,它们不是用逗号分隔的
问题描述
我正在寻找在 python 中创建以下 JSON 文件。我不明白如何拥有多个不以逗号分隔的字典,因此当我使用 JSON 库将字典保存到磁盘时,我得到以下 JSON;
{"text": "Terrible customer service.", "labels": ["negative"], "meta": {"wikiPageID": 1}}
{"text": "Really great transaction.", "labels": ["positive"], "meta": {"wikiPageID": 2}}
{"text": "Great price.", "labels": ["positive"], "meta": {"wikiPageID": 3}}
而不是像下面这样的字典列表;
[{"text": "Terrible customer service.", "labels": ["negative"], "meta": {"wikiPageID": 1}},
{"text": "Really great transaction.", "labels": ["positive"], "meta": {"wikiPageID": 2}},
{"text": "Great price.", "labels": ["positive"], "meta": {"wikiPageID": 3}}]
不同之处在于,在第一个示例中,每一行都是一个字典,它们不在列表中或用逗号分隔。
而在第二个例子中,我能想出的是一个字典列表,每个字典用逗号分隔。
如果这是一个愚蠢的问题,我很抱歉,我已经为此烦恼了好几个星期,并且无法提出解决方案。
任何帮助表示赞赏。
并提前感谢您。
解决方案
正如@LaurinNiemeyer 提到的,没有办法将多个单独的 Python 字典对象存储在一个 json 文件中,而无需通过 Python 内置库将它们包装在列表或字典或其他支持的数据结构中。但是,有一种解决方法,它会根据需要导出文件,但请记住,即使文件具有“.json”扩展名,这种格式也不符合 json 格式!
假设您有以下要导出的字典对象:
dict1 = {"text": "Terrible customer service.", "labels": ["negative"], "meta": {"wikiPageID": 1}}
dict2 = {"text": "Really great transaction.", "labels": ["positive"], "meta": {"wikiPageID": 2}}
dict3 = {"text": "Great price.", "labels": ["positive"], "meta": {"wikiPageID": 3}}
要导出上述字典对象,您只需执行以下操作:
objs_to_export = [dict1, dict2, dict3]
with open("json_file.json", "a") as out_file:
for obj in objs_to_export:
json.dump(obj, out_file)
out_file.write('\n')
推荐阅读
- aem - How to get the browser page URL without the domain name in the component's jsp/html aem6.3?
- excel - Using sheet1's two columns how to match with Sheet2 column?
- amazon-web-services - ElastiCache - Migrating data from t1.*/ t2.* to m3.*
- python - 从 python 列表中选择子列表,在同一元素上开始和结束
- java - Spring Boot 找不到 Thymeleaf(消息)属性文件
- html - 具有列环绕和不同高度的引导垂直对齐
- powershell - 使用嵌套模块加载 PowerShell 模块会出现错误
- javascript - jQuery - 检测元素是否在视口中
- php - 我的验证器功能有什么问题?
- .net - 如何处理 EndSave 事件(AutoCAD .net vb)?