I’m entering the following code and receiving the delimiter expected error. From what I can gather JSON Decoder wants a ‘,’ automatically inserted between each record I pull from the For Loop. I can’t seem to find any solution. It pulls one record from the URL, then stops.
Line 1, Column 54 (char 53) does not appear to exist.
There are 9 columns on line 1.
import pandas as pd
import requests
import json
import urllib.request
sample = pd.read_csv('Codes.csv')
with open('FilmList2.json', 'r+') as filmlist:
data = json.load(filmlist)
def compare():
for code in sample:
code = urllib.parse.quote(code)
with urllib.request.urlopen(f'http://www.omdbapi.com/?i={code}&type=movie&apikey=71c66a81') as url:
entry = json.load(url)
data.update(entry)
with open('FilmList2.json', 'a') as filmlist:
json.dump(data, filmlist, indent=4, separators = (', ',': '))
compare()
Advertisement
Answer
Yeah, JSON format delimit each element with an ,
so if your file is not properly formated, the json
package will not works.
This does not works so it will raise an error:
{
"name": "paul"
"age": 18
}
But this works fine (because it is properly formatted):
{
"name": "paul",
"age": 18
}
So, you just should gather the data from the file, store it in a variable, update the variable with the new data (it’s what your doing).
But then, don’t append the content to the file, re-write it with the new value (on line 19, use "w"
instead of "a"
:
with open('FilmList2.json', 'a') as filmlist:
json.dump(data, filmlist, indent=4, separators = (', ',': '))