lai*_*ila 3 python json dictionary
所以我有一个文件python_dictionary.json,其中包含我想要附加的字典,而不必每次都打开.假设python_dictionary.json只包含:
{
key1: value`
}
Run Code Online (Sandbox Code Playgroud)
我想补充一下
new_dictionary=
{
key2:value2
}
Run Code Online (Sandbox Code Playgroud)
现在我在做:
with open('python_dictionary.json','a') as file:
file.write(json.dumps(new_dictionary,indent=4))
Run Code Online (Sandbox Code Playgroud)
这会创建一个字典:
{
key1:value1
}
{
key2:value2
}
Run Code Online (Sandbox Code Playgroud)
这显然不是一本真正的字典.
我知道这一点:将值添加到现有的json文件而不重写它
但这涉及添加一个条目,我想做一个json.dumps
听起来你想从json加载字典,添加新的键值并将其写回.如果是这种情况,您可以这样做:
with open('python_dictionary.json','r+') as f:
dic = json.load(f)
dic.update(new_dictionary)
json.dump(dic, f)
Run Code Online (Sandbox Code Playgroud)
(模式'r+'用于读写,不附加,因为你正在重写整个文件)
如果你想和json.dump一起做附加的东西,我想你必须{在追加之前从json.dumps字符串中删除第一个.就像是:
with open('python_dictionary.json','a') as f:
str = json.dumps(new_dictionary).replace('{', ',', 1)
f.seek(-2,2)
f.write(str)
Run Code Online (Sandbox Code Playgroud)