[英]Python handling exceptions while reading JSON files
我包括try... except...
加载我的 JSON 文件时。 我的代码是:
with open(file,'r',encoding='utf-8') as r:
try:
j = json.load(r)
except:
j = json.loads('['+r.read().replace('}{','},{')+']')[0]
print(j)
然而, j
从except
一边永远不会被通读。 如果我单独运行except
代码,我可以毫无问题地打印j。
更新:
对于 JSON 无法运行json.load(r)
,它会给出错误消息Extra data: line 1 column 106362 (char 106361)
。 在这种情况下,我必须通过将 JSON 传递给except
部分来稍微“修改”文件。 但是, print(j)
返回一个空列表[]
而不是真正的 JSON。
我是 Python 的新手,只是想知道是否有人知道我应该怎么做才能try...except...
正常工作?
非常感谢!
try 语句j = json.load(r)
隐式读取文件,将文件的光标移动到末尾。 这意味着再次读取文件会输出一个空字符串,因为光标已经位于文件末尾。
因此,解决方案是使用seek(0)
重置光标:
with open(file,'r',encoding='utf-8') as r:
try:
j = json.load(r)
except:
r.seek(0)
j = json.loads('['+r.read().replace('}{','},{')+']')[0]
print(j)
我也花了一些调试工作,但是在任何 IDE 中使用适当的调试工具,在输入 except 语句时,您可以看到文件 r 为空。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.