python解析较大的json文件报异常,怎么处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python解析较大的json文件报异常,怎么处理相关的知识,希望对你有一定的参考价值。

参考技术A

可以逐行读入内存 那就不会因为文件太大出问题

先取得文件的句柄:

f = open("your_file_name", "r", encoding = "utf-8"

然后逐行读取 并且内存里面只保存一行

for line in f:
    print(line)

这样就不会因为文件太大而出现问题


本回答被提问者采纳
参考技术B 1.有可能是格式的问题。建议提出来一个到在线解析看一看
2.实在不行,就设置一个异常抛出,正常情况下异常的可能就那一个。
抛异常代码:
with open('d://py/20160122.json','r') as fo:
for line in fo:
try:
# print(count)
paper[count]=json.loads(line)
count+=1
except ValueError:
continue

python操作:json文件中存在NumberInt(0),没有引号,无法解析?

利用python解析一个大型json文件,文件中有NumberInt(0)如图,格式不规范导致无法解析。尝试过1、read函数直接读取为字符串,再用json.loads()转化为python对象,但只能解析小文件,处理大文件时出现Memory Error 。2、json.load(file),由于格式不规范报错 3、 ijson流式读取,由于格式不规范报错。请教大神如何解析大型json文件(5G)?

python程序,报错NameError: name XX is not defined 是没有声明造成的,需要在文件的前两行进行声明编码,声明方法为:

1、写一个python文件,文件中有中文字符,且未声明编码。

2、当程序文件中,存在中文字符时候,文件未声明编码格式就会出现报错信息:  File "encode.py", line 1SyntaxError:
Non-ASCII character '\\xe7' in file encode.py on line 1, but no encoding
declared; see //..python.../dev/peps/pep-0263/ for details for details。

3、根据错误提示,在python官网得到如下帮助信息。

4、所以,按照帮助文档的提示以及例子,在Python文件中加入一个编码声明。

5、保存之后,再次运行,运行成功。

参考技术A 如果不规范格式的形式是已知的,有限的,可以考虑先读入文本,把不规范格式替换为规范格式(比如你的例子里面,两边加上双引号),然后转为json,最后在真正需要适用的地方把双引号去掉。

以上是关于python解析较大的json文件报异常,怎么处理的主要内容,如果未能解决你的问题,请参考以下文章

Android json解析架包(阿里巴巴的fastjson)处理是报异常。

python操作:json文件中存在NumberInt(0),没有引号,无法解析?

如何用Python获取网页中json的参数

json数据解析出错应该怎么办

Python求解:猜数字游戏新建文件以及异常处理

更新Newtonsoft.Json后报异常,未能加载文件或程序集“Newtonsoft.Json