[英]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.