简体   繁体   English

JSON 无效的 EOF (Python)

[英]JSON not valid EOF (Python)

I am trying to build up a JSON using the following code but jsonlint says it's not valid, ending with EOF error.我正在尝试使用以下代码构建 JSON,但 jsonlint 说它无效,并以 EOF 错误结尾。 The error is that I have to separate the output but my goal is to have a single JSON file.错误是我必须将输出分开,但我的目标是拥有一个 JSON 文件。

Here is the code I am using:这是我正在使用的代码:

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)

And this is the output:这是输出:

[[{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "026554891"}, {"Numero": "0[(96.48 % n: 0) (3.37 % n: 9) (0.06 % n: 4)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "026554891"}, {"Numero": "2[(36.17 % n: 2) (25.01 % n: 0) (18.48 % n: 9)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "026554891"}, {"Numero": "6[(99.9 % n: 6) (0.09 % n: 4) (0.0 % n: 9)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "026554891"}, {"Numero": "5[(99.99 % n: 5) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "026554891"}, {"Numero": "5[(99.98 % n: 5) (0.01 % n: 3) (0.0 % n: 9)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "026554891"}, {"Numero": "4[(84.76 % n: 4) (7.63 % n: 0) (2.08 % n: 6)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "026554891"}, {"Numero": "8[(89.88 % n: 8) (8.87 % n: 9) (1.11 % n: 5)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "026554891"}, {"Numero": "9[(84.29 % n: 9) (8.23 % n: 8) (6.79 % n: 0)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "026554891"}, {"Numero": "1[(99.99 % n: 1) (0.0 % n: 9) (0.0 % n: 8)]"}]][[{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "45602931566"}, {"Numero": "4[(80.03 % n: 4) (18.44 % n: 1) (0.69 % n: 3)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "45602931566"}, {"Numero": "5[(99.99 % n: 5) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "45602931566"}, {"Numero": "6[(99.91 % n: 6) (0.04 % n: 0) (0.03 % n: 4)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "45602931566"}, {"Numero": "0[(99.99 % n: 0) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "45602931566"}, {"Numero": "2[(99.86 % n: 2) (0.12 % n: 8) (0.01 % n: 3)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "45602931566"}, {"Numero": "9[(99.07 % n: 9) (0.83 % n: 8) (0.04 % n: 5)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "45602931566"}, {"Numero": "3[(99.99 % n: 3) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "45602931566"}, {"Numero": "1[(50.74 % n: 1) (40.73 % n: 7) (5.93 % n: 5)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "45602931566"}, {"Numero": "5[(36.81 % n: 5) (29.07 % n: 8) (16.1 % n: 6)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "45602931566"}, {"Numero": "6[(98.46 % n: 6) (0.66 % n: 4) (0.64 % n: 2)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "45602931566"}, {"Numero": "6[(69.49 % n: 6) (20.06 % n: 1) (6.35 % n: 8)]"}]][[{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "5[(60.71 % n: 5) (29.06 % n: 8) (8.77 % n: 7)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "7[(85.45 % n: 7) (8.71 % n: 9) (1.92 % n: 0)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "1[(99.99 % n: 1) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "1[(99.18 % n: 1) (0.42 % n: 2) (0.39 % n: 4)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "5[(99.99 % n: 5) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "8[(99.98 % n: 8) (0.01 % n: 2) (0.0 % n: 9)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "7[(99.8 % n: 7) (0.12 % n: 3) (0.04 % n: 4)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "6[(99.99 % n: 6) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "8[(59.18 % n: 8) (32.39 % n: 2) (6.08 % n: 6)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "1[(99.99 % n: 1) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "1[(95.61 % n: 1) (3.78 % n: 2) (0.48 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "5[(99.99 % n: 5) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "5711587681155"}, {"Numero": "5[(99.85 % n: 5) (0.14 % n: 8) (0.0 % n: 9)]"}]][[{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "158775853"}, {"Numero": "1[(75.32 % n: 1) (24.4 % n: 2) (0.26 % n: 4)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "158775853"}, {"Numero": "5[(99.99 % n: 5) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "158775853"}, {"Numero": "8[(99.97 % n: 8) (0.01 % n: 2) (0.0 % n: 9)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "158775853"}, {"Numero": "7[(99.99 % n: 7) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "158775853"}, {"Numero": "7[(64.8 % n: 7) (35.17 % n: 2) (0.0 % n: 9)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "158775853"}, {"Numero": "5[(99.99 % n: 5) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "158775853"}, {"Numero": "8[(97.63 % n: 8) (1.19 % n: 3) (1.14 % n: 9)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "158775853"}, {"Numero": "5[(80.64 % n: 5) (18.03 % n: 3) (0.81 % n: 7)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "158775853"}, {"Numero": "3[(99.99 % n: 3) (0.0 % n: 9) (0.0 % n: 8)]"}]][[{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "1[(99.99 % n: 1) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "4[(80.31 % n: 4) (10.32 % n: 1) (5.49 % n: 2)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "1[(99.43 % n: 1) (0.31 % n: 2) (0.22 % n: 7)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "1[(92.47 % n: 1) (4.77 % n: 4) (2.64 % n: 6)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "5[(99.99 % n: 5) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "8[(99.42 % n: 8) (0.56 % n: 2) (0.01 % n: 3)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "8[(99.99 % n: 8) (0.0 % n: 9) (0.0 % n: 7)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "3[(98.3 % n: 3) (1.69 % n: 5) (0.0 % n: 9)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "3[(99.99 % n: 3) (0.0 % n: 9) (0.0 % n: 8)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "7[(98.05 % n: 7) (1.5 % n: 2) (0.42 % n: 4)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "0[(80.66 % n: 0) (18.98 % n: 2) (0.23 % n: 1)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "8[(31.61 % n: 8) (28.47 % n: 4) (23.53 % n: 6)]"}], [{"Nome bollettino": "BR_3_VE33491116420151103K000351FA.png"}, {"Stringa Causale": "1411588337082"}, {"Numero": "2[(66.61 % n: 2) (26.19 % n: 4) (4.39 % n: 8)]"}]]"Not Found"

If you try to validate it , it says it's not valid.如果您尝试验证它,它会说它无效。 How can I fix this ?我怎样才能解决这个问题 ? Also, how can I make "Nome bollettino" as root for every other object ?另外,如何将“Nome bollettino”作为所有其他对象的根? I mean, like this:我的意思是,像这样:

- Nome bollettino:
   - Stringa Causale:
      - Numero:

It seems like you're adding separate JSON structures to your file, and that's fine - that's a JSON line file.看起来您正在向文件中添加单独的 JSON 结构,这很好 - 这是一个JSON 行文件。 However, json.dump doesn't automatically add newline delimiters after your data.但是, json.dump不会在您的数据后自动添加换行符。 You'll have to do it yourself.你必须自己做。

with open(...) as outfile:
    json.dump(jsontxt, outfile)
    outfile.write('\n')

When validating your JSON, validate each line separately.验证您的 JSON 时,请分别验证每一行。


If you want to merge your JSONs into one, you'd accumulate everything in a loop and dump at the end.如果您想将您的 JSON 合并为一个,您可以在循环中累积所有内容并在最后转储。 It'd be something like this:它会是这样的:

data = []
for item in jsonList:
    ... # do something
    data.append(newItem) # newItem is your final json sub-structure

with open(..., 'w', encoding='utf-8') as f:
    json.dump(data, f)

You opened the output file in append mode 'a' which means you have two bits of json one after another and the result is not a single json value.您以追加模式'a'打开输出文件,这意味着您一个接一个地有两位 json,结果不是单个 json 值。

You cannot append json strings to a text file and expect the resulting file to be valid json.您不能将 json 字符串附加到文本文件并期望生成的文件是有效的 json。 Open the file in 'w' mode instead and you will overwrite the old value.改为以'w'模式打开文件,您将覆盖旧值。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM