python读取raw数据文件_用Python读取大型JSON文件(raw_decode)

本文介绍如何在Python中使用`json.JSONDecoder().raw_decode()`解析大型JSON文件,通过迭代读取文件并逐个解码JSON对象。文章中提到了在使用`raw_decode`时遇到的TypeError问题,并给出了解决方案,即先读取文件内容再进行解码。最后展示了解决问题后的代码示例,用于将JSON文件内容写入新的文本文件。
摘要由CSDN通过智能技术生成

我试图在

Python中读取大型JSON文件(data.json).因为JSON文件有多个JSON对象,并且将在Python中创建多个字典(字典的数量未知),所以我使用了decoder.raw_decode()和generator.

以下是代码:

import json

def parse():

with open('data.json',encoding='utf-8') as jfile:

try:

while True:

decoder = json.JSONDecoder()

obj, idx = decoder.raw_decode(jfile)

yield obj

except ValueError as e:

print(e)

pass

else:

print("aha")

def main():

imputd=parse()

if imputd:

while True:

try:

print(str(next(imputd)).readlines())

except StopIteration as e:

print(e)

break

main()

我收到错误:

Traceback (most recent call last):

File "H:\Document\Python\j10.py", line 57, in

main()

File "H:\Document\Python\j10.py", line 36, in main

print(str(next(imputd)).readlines())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值