could someone tell me please why this code works only one time and in the second time i get an error My code:
import json
counter_value = 1
data= {}
data['test_device']= []
data['test_device'].append({ "device": "gas_zaehler", "measure": "energy","value": counter_value})
with open('test.json', 'a') as feedjson:
json.dump(data, feedjson)
feedjson.write('\n')
feedjson.close()
with open('test.json') as feedjson:
json_data = json.load(feedjson)
for i in json_data['test_device']:
print("device" + i['device'] )
in the second time execution i got this error:
File "/usr/lib/python3.5/json/decoder.py", line 342, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 78)
its not the same Issue as this link bellow, because i don't have two dictionnaries{}{}: Python json.loads shows ValueError: Extra data
json_datato contain at that point? If you're thinking "a list of five dictionaries", then you can't get that just by writing five dictionaries to the file one at a time. You need to dump a list, not a dict. If you're thinking "a single dictionary", then you shouldn't be opening the file in "a" mode, since the old dictionaries will remain in the file, alongside the new one. Most likely you should beloading the old dictionary, updating its values, and re-dumping it in "w" mode.