我想使用python pandas读取json文件。该文件的每一行都是JSON中的完整对象。
我正在使用版本 -
python:2.7.6
pandas:1.19.1
json文件 -
purchaseToken
我正在使用下面的代码来读取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文件中,“childs”键包含一个未知索引的数组,并且在“\ n”之间可用。因此,如果我运行上面的代码,我得到 ValueError:预期的对象或值,但如果我在“pqr”之后删除“\ n”,我的代码就可以运行了。
我不想从我的数据中删除可用的“\ n”。我想在我的代码中处理这个问题。我想只使用python pandas代替python json库来以良好的方式处理数据。
我如何才能使用python pandas并处理这种类型的文件?
答案 0 :(得分:6)
首先使用JSON validator网站检查它是否是有效的json文件
一旦文件处于有效的json格式,您就可以使用以下代码将其读作数据帧
with open("training.json") as datafile:
data = json.load(datafile)
dataframe = pd.DataFrame(data)
希望这会有所帮助。
答案 1 :(得分:0)
read_json()
无法正常工作。您可以尝试修复该行,也可以尝试将整个内容格式化为有效的JSON。我在这里做了后者,在新行后添加逗号并用括号括起整个东西以形成一个合适的JSON数组:
with open('temp.txt') as f:
content = f.read()
pd.read_json('[' + content.replace('}\n', '},') + ']')