python 3.5
嗨,我有以下代码将元素添加到json数据:
jsonFile = open("json.json", mode="r+", encoding='utf-8')
jdata = json.load(jsonFile)
jdata['chat_text'].insert(0, {'x':'x'})
json.dump(jdata, jsonFile)
jsonFile.close()
但这将是结果:
第一数据
{"chat_text": [{"a": "b", "c": "d", "e": "f"}]}
编辑数据
{"chat_text": [{"a": "b", "c": "d", "e": "f"}]}{"chat_text": [{'x':'x'},{"a": "b", "c": "d", "e": "f"}]}
所以我写了这段代码:
jsonFile = open("json.json", mode="r+", encoding='utf-8')
jdata = json.load(jsonFile)
jdata['chat_text'].insert(0, {'x':'x'})
open('json.json', mode='w').close() #deleting first data
json.dump(jdata, jsonFile)
jsonFile.close()
结果是这样的:
第一数据
{"chat_text": [{"a": "b", "c": "d", "e": "f"}]}
编辑数据
{"chat_text": [{"x","x"},{"a": "b", "c": "d", "e": "f"}]}
如您所见,它用空间替换了第一个数据,我希望它什么都不是...
有任何想法吗?
问题本质上是您以不同的模式打开了两次文件。
jsonFile = open("json.json", mode="r")
jdata = json.load(jsonFile)
jsonFile.close()
jdata['chat_text'].insert(0, {'x':'x'})
jsonFile = open('json.json', mode='w+')
json.dump(jdata, jsonFile)
jsonFile.close()
因此,前3行会打开您的文件并将其加载到jdata中,然后关闭该文件。进行所需的任何操作再次打开文件,以进行写入。转储数据,关闭文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句