我试图使用以下代码构建一个JSON,但是jsonlint说它无效,以EOF错误结尾。 错误是我必须分开输出,但我的目标是只有一个JSON文件。在
以下是我使用的代码:
t = 0
p = []
nome_b = (bollist[0])
p_causale = (causalestr) #contains a string
for item in jsonlist:
predizione = (jsonlist[t])
bollettini = {'Nome bollettino': str(nome_b)}
causale = {'Stringa Causale': str(p_causale)}
numero = {'Numero': str(predizione)}
t += 1
p.append([bollettini]+[causale]+[numero])
if not y:
jsontxt = ('Not found')
else:
#jsontxt = ([bollettini],[causale],[numero])
jsontxt = (p)
with open((TXT.txt'), 'a', encoding='utf-8') as outfile:
json.dump(jsontxt, outfile)
这是输出:
^{pr2}$如果你试图validate it,它会说它是无效的。 我该怎么解决这个问题? 另外,我怎样才能使“Nome bollettino”作为其他对象的根呢? 我是说,像这样:
- Nome bollettino:
- Stringa Causale:
- Numero:
您以append模式
'a'
打开了输出文件,这意味着您一个接一个地有两个json位,结果不是一个json值。在json文件不能附加有效的json文本。改为以
'w'
模式打开文件,您将覆盖旧值。在似乎您正在向文件中添加单独的JSON结构,这很好—这是一个JSON line文件。但是,
json.dump
不会自动在数据后添加换行分隔符。你得自己动手。在在验证JSON时,请分别验证每一行。在
如果你想把你的json合并成一个json,你需要在一个循环中积累所有的东西,并在最后进行转储。应该是这样的:
^{pr2}$相关问题 更多 >
编程相关推荐