繁体   English   中英

Python 3中的JSONdecoder错误。API中的Json

[英]JSONdecoder Error in Python 3. Json from API

我有一个代码:

dguid='2016A0011M4B'
income='7'
ethnic='3'
language='10'
url = 'https://www12.statcan.gc.ca/rest/census-recensement/CPR2016.json?lang=E&dguid={}&topic={}&notes=1'.format(
    dguid,
    ethnic)

!wget -q -O 'data.json' url
with open('data.json') as json_data:
data = json.load(json_data)

它给我一个错误, 在这里输入图片描述

-------------------------------------------------- -------------------------()9中的JSONDecodeError Traceback(最近一次调用最后一次)get_ipython()。system(“ wget -q -O' data.json'url“)10,其中open('data.json')为json_data:---> 11 data = json.load(json_data)

/opt/conda/envs/DSX-Python35/lib/python3.5/json/ init .py in load(fp,cls,object_hook,parse_float,parse_int,parse_constant,object_pairs_hook,** kw)266 cls = cls,object_hook = object_hook,267 parse_float = parse_float,parse_int = parse_int,-> 268 parse_constant = parse_constant,object_pairs_hook = object_pairs_hook,** kw)269270

/opt/conda/envs/DSX-Python35/lib/python3.5/json/ init .py在加载中(s,编码,cls,object_hook,parse_float,parse_int,parse_constant,object_pairs_hook,** kw)317 parse_int为None并且parse_float为None且318 parse_constant为None且object_pairs_hook为None而不是kw):-> 319 return _default_decoder.decode 320如果cls为None:321 cls = JSONDecoder

/opt/conda/envs/DSX-Python35/lib/python3.5/json/decoder.py in解码(self,s,_w)337338“”“-> 339 obj,end = self.raw_decode(s, idx = _w(s,0).end())340 end = _w(s,end).end()341如果end!= len:

/opt/conda/envs/DSX-Python35/lib/python3.5/json/decoder.py在raw_decode(self,s,idx)355 obj,end = self.scan_once(s,idx)356中,除了StopIteration作为err: -> 357从None引发JSONDecodeError(“期望值”,s,err.value)358返回obj,结束

JSONDecodeError:预期值:第1行第1列(字符0)

怎么了?

该URL返回的JSON无效。 例外情况清楚地表明了这一点。

JSON有效负载的前缀“ //”使JSON无效:

// {“ COLUMNS”:[“ PROV_TERR_ID”,“ PROV_TERR_NAME_NOM”,...

您必须删除这前两个字符。 您可以这样做:

with open('data.json') as json_data:
    line = json_data.readlines()
    line[0] = line[0][2:]
    data = json.loads(line[0])
    print(data)

在python 3.6.1上正确测试

暂无
暂无

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

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