我有一个以这种模式排列的JSON文件:
[
{
"Title ID": "4224031",
"Overtime Status": "Non-Exempt",
"Shift rates": "No Shift rates",
"On call rates": "No On call rates"
},
[
{
"Step: 1.0": [
"$38.87",
"(38.870000)"
]
}
]
][
{
"Title ID": "4225031",
"Overtime Status": "Non-Exempt",
"Shift rates": "No Shift rates",
"On call rates": "No On call rates"
},
[
{
"Step: 1.0": [
"$38.87",
"(38.870000)"
]
}
]
]
我正试着把它装进熊猫DataFrame。我已经尝试打开到JSON文件的连接并运行JSON.load。不幸的是,我得到的JSON解码错误如下:"JSONDecodeError: Extra data:第16行,第2列(char 182)“。当通过linter运行JSON时,我发现JSON在文件中的呈现方式可能存在问题。括号之间的部分是有效的,但当包含在括号中时,将变得无效。然后,我试图拿到带括号的字典,但没有取得太大进展。有谁有关于如何成功访问这些JSON数据并将其放入pandas DataFrame的建议吗?
发布于 2020-12-03 04:22:15
json是无效的信标,因为它在此表示中有多个根。必须是这样的
jsonObject = [{"1":"3"}], [{"4":"5"}]
我所能想到的方法是在编辑器中通过查找和替换来替换这个],[
的这些括号。然后,您将能够创建一个数据帧,因为它现在是一个列表。
其次,如果它不是一次性的工作,那么你需要编写一个正则表达式,它可以在文本清理管道(或代码)中为你做这件事。我不擅长写工作正则表达式(对不起,伙计)。
发布于 2020-12-04 04:25:16
我找到了一个解决方案。
首先,在检查了linter中的JSON数据后,我发现在不同的位置上有一些额外的括号和大括号。因此,我通过一个正则表达式运行数据,这个正则表达式清除了不必要的括号和括号。
接下来,我运行每一行,它现在通过json.loads看起来像一个字符串字典
最后,我调用pd.DataFrame(pd.json_normalize(data))来获得我想要的熊猫数据帧。
感谢评论者的帮助。
https://stackoverflow.com/questions/65119605
复制相似问题