用Python写入json文件[重复]
Posted
技术标签:
【中文标题】用Python写入json文件[重复]【英文标题】:Write in json file with Python [duplicate] 【发布时间】:2016-12-07 13:27:42 【问题描述】:对于一个项目,我需要用 python 编写一个 json 文件,但我已经看到的所有内容 (json.dump) 与我想要做的不匹配......
我有一个结构,我只想在里面添加一些东西。 我想添加一个带有输入的服务,例如:
"Serial_011": "011",
"Servers_011":
[
"hostname": "srv-a.11",
"ipv4_address": "0.0.0.0",
"services":
[
"uri": "http://www.google.fr/1",
"expected_code": 200
,
"uri": "http://www.google.fr/2",
"expected_code": 200
]
,
"hostname": "nsc-srv-b.11",
"ipv4_address": "0.0.0.0",
"services":
[
"uri": "http://www.google.fr/3",
"expected_code": 200
,
"uri": "http://www.google.fr/4",
"expected_code": 200
]
]
提前致谢
【问题讨论】:
将 JSON 读取到一个对象中,将您的信息添加到该对象并再次序列化它(如果需要,使用漂亮打印)。 我在哪里找到这个?感谢您的快速回答 google.com docs.python.org/2.7/library/json.html ? 如果你没有特殊的文件格式,那么添加一些东西的常用方法不仅仅是在最后加载它,修改它,然后写回整个东西。 (在大文件上,您尝试使用流式方法) 【参考方案1】:当我在 python 中使用 JSON 对象时,我会记住 4 种方法。
json.dumps(<a python dict object>)
- 给出由 python dict 对象形成的 json 字符串表示
json.dump( <a python dict object>,<file obj>)
- 在文件对象中写入一个 json 文件
json.loads(<a string>)
- 从字符串中读取一个 json 对象
json.load(<a json file>)
- 从文件中读取一个 json 对象。
接下来要记住的重要一点是,python 中的json
和dict
是等价的。
让我们说,文件内容位于文件addThis.json
中。
您在文件existing.json
中有一个已经存在的json 对象。
下面的代码应该可以完成这项工作
import json
existing = json.load(open("/tmp/existing.json","r"))
addThis = json.load(open("/tmp/addThis.json","r"))
for key in addThis.keys():
existing[key] = addThis[key]
json.dump(exist,open("/tmp/combined.json","w"),indent=4)
编辑: 假设 addThis 的内容不在文件中,而是从控制台读取。
import json
existing = json.load(open("/tmp/existing.json","r"))
addThis = input()
# paste your json here.
# addThis is now simply a string of the json content of what you to add
addThis = json.loads(addThis) #converting a string to a json object.
# keep in mind we are using loads and not load
for key in addThis.keys():
existing[key] = addThis[key]
json.dump(exist,open("/tmp/combined.json","w"),indent=4)
【讨论】:
所以在existing.json中我会放当前的json,在addThis.json中我用input()写我想要添加的内容,结果会是conbined.json? 为了澄清,内容(要添加的内容)是从 input() 中读取的? @M_S 我还添加了用于从input()
读取新 json 内容的代码。如果可行,请投票并确认答案。谢谢。
循环中... json.dump 中存在什么?
你能再清楚一点吗?以上是关于用Python写入json文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章
将可读格式的json.dumps写入Python3中的文件[重复]