【发布时间】:2019-11-15 13:06:05
【问题描述】:
我有一个代码:
dguid='2016A0011M4B'
income='7'
ethnic='3'
language='10'
url = 'https://www12.statcan.gc.ca/rest/census-recensement/CPR2016.json?lang=E&dguid={}&topic={}¬es=1'.format(
dguid,
ethnic)
!wget -q -O 'data.json' url
with open('data.json') as json_data:
data = json.load(json_data)
它给了我一个错误 enter image description here
----------------------------------- ---------------------------- JSONDecodeError Traceback(最近调用 最后)在() 9 get_ipython().system("wget -q -O 'data.json' url") 10 使用 open('data.json') 作为 json_data: ---> 11 数据 = json.load(json_data)
/opt/conda/envs/DSX-Python35/lib/python3.5/json/init.py 负载(fp,cls,object_hook,parse_float,parse_int,parse_constant, object_pairs_hook, **kw) 第266章 第267章 --> 268 parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw) 269 270
/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 返回 _default_decoder.decode(s) 如果 cls 为无,则为 320: 321 cls = JSON解码器
/opt/conda/envs/DSX-Python35/lib/python3.5/json/decoder.py 解码(自我,s,_w) 337 第338章 --> 339 obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 340结束=_w(s,结束).end() 第341章
/opt/conda/envs/DSX-Python35/lib/python3.5/json/decoder.py raw_decode(self, s, idx) 第355章 356 除了 StopIteration 作为错误: --> 357 从无引发 JSONDecodeError("Expecting value", s, err.value) 358 返回对象,结束
JSONDecodeError:预期值:第 1 行第 1 列(字符 0)
怎么了?
【问题讨论】:
-
如果我使用加载而不是加载方法,它会给我错误:JSON 对象必须是 str,而不是 'TextIOWrapper'
-
!wget -q -O 'data.json' url看起来不像是有效的 Python 代码... -
有一些数据科学笔记本交互界面,例如 Jupyter/Ipython,支持运行类似的 shell 命令(例如在 python 代码中间)。像这样:twitter.com/python_tip/status/929984742421942272/photo/1