首页 > 解决方案 > Pandas DataFrame 因 AttributeError 失败:“NoneType”对象没有属性“键”

问题描述

从字典列表创建熊猫数据框失败

AttributeError:“NoneType”对象没有属性“键”

我有超过 4000K 的 json 文件,每个文件包含 1 行以下格式的 json -

{“title”:“abcWebhome”,“creator”:“demo”,“url”:“https://demo.demo.xyz/bin/bin/Gamma/”,“body”:“#REDIRECT [[Gamma ]]”,“display_title”:“Gamma”,“last_modifier”:“user1”,“modification_date”:1450340923000,“creation_date”:1450340923000,“size”:“262”,“view_count”:0,“category_list”: [],“组列表”:[]}

我需要将这些文件合并到 10 个 json 文件中,我想为这些文件处理一定数量的文件并将数据附加到列表中,创建一个 pandas 数据帧并使用 df.to_json 将其写入 json。我在大约 30 个文件上测试了代码,它运行良好。

file_list = glob.glob("*.json")

allFilesDict = {v:k for v, k in enumerate(file_list, 1)}

data = []

for k,v in allFilesDict.items():
    if 1 <= k <= 400000:
        with open(v, 'r') as d:
            data.append(json.load(d))

df = pd.DataFrame(data)

df.to_json(r'/home/user1/merge/output_1.json', orient='records')

使用上面的代码,df创建失败了——

AttributeError:“NoneType”对象没有属性“键”

如何确定错误原因?
可以采取任何其他方法来处理如此大的文件并将其合并为 10 个文件。

标签: pythonjsonpython-3.xpandasdataframe

解决方案


推荐阅读