繁体   English   中英

如何使用python熊猫读取json文件?

[英]How to read json file using python pandas?

我想使用python熊猫读取json文件。 文件的每一行都是JSON中的完整对象。

我正在使用以下版本 -

的Python:2.7.6

熊猫:1.19.1

json文件-

{"id":"111","p_id":"55","name":"aaa","notes":"","childs":[]}
{"id":"222","p_id":"56","name":"bbb","notes":"","childs":[]}
{"id":"333","p_id":"75","name":"ccc","notes":"","childs":[]}
{"id":"444","p_id":"76","name":"ddd","notes":"","childs":["abc","efg","pqr"
,"rtu"]}

我正在使用以下代码读取json文件-

df = pd.read_json("temp.txt", lines = True)
print df

问题是,在json文件中,“ childs”键包含未知索引数组,并且在“ \\ n”之间可用。 因此,如果我在上面的代码上运行,则会得到ValueError:预期的对象或值,但是如果我删除了在“ pqr”之后可用的“ \\ n”,则我的代码将开始工作。

我不想从数据中删除可用的“ \\ n”。 我想在我的代码中处理这个问题。 我只想使用python pandas而不是python json库来以良好的方式处理数据。

如何仅使用python pandas并处理此类文件?

首先检查它是有效的json文件还是不使用JSON验证程序站点

文件为有效json格式后,您可以使用以下代码将其读取为数据框

with open("training.json") as datafile:
    data = json.load(datafile)
dataframe = pd.DataFrame(data)

希望这可以帮助。

由于“ pqr”之后的新行,因此read_json()无法工作。 您可以尝试修复该行,也可以尝试将整个内容格式化为有效的JSON。 我在这里通过在新行后添加逗号并用方括号括起来以形成适当的JSON数组来完成后者:

with open('temp.txt') as f:
    content = f.read()

pd.read_json('[' + content.replace('}\n', '},') + ']')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM