0
У меня есть этот кусок кода для обработки больших файлов в Python:Обработка огромный файл JSON в Python - ValueError
import urllib2, json, csv
import requests
def readJson(url):
"""
Read a json file.
:param url: url to be read.
:return: a json file.
"""
try:
response = urllib2.urlopen(url)
return json.loads(response.read(), strict=False)
except urllib2.HTTPError as e:
return None
def getRoadsTopology():
nodes = []
edges = []
url = "https://data.cityofnewyork.us/api/geospatial/svwp-sbcd?method=export&format=GeoJSON"
data = readJson(url)
print "Done reading road bed"
print "Processing road bed..."
v_index = 0;
roads = 0
for road in data['features']:
n_index = len(nodes)
# (long, lat)
coordinates = road['geometry']['coordinates'][0]
for i in range(0, len(coordinates)):
lat_long = coordinates[i]
nodes.append((lat_long[1], lat_long[0]))
for i in range(n_index, len(nodes)-1-n_index):
print i, i+1
edges.append((i, i+1))
return nodes, edges
Иногда это работает, но много раз я получаю ту же ошибку в разных строках:
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 380, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting : delimiter: line 7 column 4 (char 74317829)
File "/usr/local/Cellar/python/2.7.11/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 380, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting , delimiter: line 5 column 1 (char 72149996)
Мне интересно, что вызывает эту ошибку, и на разных линиях, и как я могу ее решить.
Сайт, которые обеспечивают этот файл имеет также успешную презентацию этого:
https://data.cityofnewyork.us/City-Government/road/svwp-sbcd
Ваш вход JSON неисправен. –
* Почему это неправильно, мы не можем видеть, вы не делились своей функцией 'readJson', поэтому мы не знаем, как вы загружаете URL-адрес. –
Или может быть что-то неправильно с 'readJson()' function ... так как он должен возвращать объект JSON –