this is my code:
import json
from pprint import pprint
with open('unAnsQuestions.json') as data_file:
data = json.load(data_file)
print(len(data))
json_len = len(data)
json_len+=1
with open('unAnsQuestions.json', "a") as json_file:
json.dump({'id':json_len,'fileName':'yogesh'},json_file,indent=2)
#json_file.write("{}\n".format(json.dumps(json_len)))
[{
"id":1,
"text":"hey?",
"answer":"hi"
},
{
"id":2,
"text":"bye.?",
"answer":"see you"
}]
这是我的代码,它在json文件中追加两个值。第一个是id和
另一个是文件名。接下来是我想要的json结构
追加数据
- 我想在json文件中追加值。
- 所以我有Question.json,其中包含一些数据:
但是当我要附加一些值时,我会得到这个输出
格式不正确。我想在括号'[]'中使用此值。
[{
"id":1,
"text":"hey?",
"answer":"hi"
},
{
"id":2,
"text":"bye.?",
"answer":"see you"
}]
{
"id": 3,
"text":"bye.?",
"answer":"see you"
}
so, the "]" is not well formatted. I tried many times but I didn't get output.can you please tell me the exact way?
答案 0 :(得分:1)
数据存储为文件中的对象数组。 在转储之前,数据需要附加在数组中。 附加后,需要重写文件,即转储数据变量。
import json from pprint
import pprint
with open('unAnsQuestions.json') as data_file:
data = json.load(data_file)
print(len(data))
json_len = len(data)
json_len+=1
with open('unAnsQuestions.json', "w") as json_file: // write the file not append to it
data.append({'id':json_len,'fileName':'yogesh'}) // add data in array at last index
json.dump(data,json_file,indent=2) // dump the array
#json_file.write("{}\n".format(json.dumps(json_len)))
答案 1 :(得分:0)
您应该找到并阅读基本的Python教程;你似乎对事情的工作方式有一些误解(例如,你向json_len
加1,但你不明白这样做对data
)没有影响。
要将元素附加到您已阅读过的数据中,只需使用append()
:
data.append({'id':3, 'text': 'buh-bye', 'answer':'huh?'})
之后,json_file.write(json.dumps(data))
将为该文件添加一个新元素。