json.loads()无法提取完整的python文件

时间:2019-12-11 04:15:12

标签: python json pandas

我正在运行以下代码,尝试提取file.json中的数据以用作python中的字典。

with open('file.json') as data:
    my_data = json.loads(data.read())

当我致电my_data时,文件不完整。它从67792行或1799045个字符开始。完整的.json文件为68863行或1827304个字符。我曾尝试使用pd.read_json,但无法将其用于数据的结构方式。

1 个答案:

答案 0 :(得分:1)

这并不能帮助您回答特定的问题,但是根据注释中的讨论,请使用类似以下代码的内容来帮助您测试JSON I / O:

import json
from datetime import datetime

jsonFile = 'D:/test.json'
data = []

print('Generating data...')
for i in range(1000000):
    data.append({
        'star-date': datetime.now().microsecond,
        'captains-log': 'This is entry #{:,}. More later, must go.'.format(i+1)
    })

print('Done!')

print('\nNum rows (in-memory): {:,}'.format(len(data)))
print('First (in-memory): {}'.format(data[0]))
print('Last (in-memory): {}'.format(data[-1]))

print('\nSaving JSON...')
with open(jsonFile, 'w') as f:
    json.dump(data, f)

print('Done!')
print('Loading JSON...')

jsonData = []
with open(jsonFile) as f:
    jsonData = json.load(f)

print('Done!')

print('\nNum rows (from file): {:,}'.format(len(jsonData)))
print('First (from file): {}'.format(jsonData[0]))
print('Last (from file): {}'.format(jsonData[-1]))

对我来说,这个特殊的脚本产生了一个约85mb的JSON文件(100万个条目),生成该文件需要几秒钟的时间,而读回该文件的时间又差不多。列表总数没有差异,而且第一个条目和最后一个条目似乎都符合预期。

您得到不同的结果吗?如果不是,您当前使用的JSON文件是否可能有问题?它是如何产生的?您可以尝试使用许多可用的在线JSON格式化程序/解析器工具之一对其进行解析以进行验证吗?

欢呼