当前,我正在尝试将webscrape中的json文件加载到python中,以便对某些列进行重新排序,删除一些文本,例如(\ n)等。json存在一些问题文件,则pd.read_json()有效(有点)。它返回一个带有1列名为“默认”的数据框。我当前的代码在下面,可以正常运行。
我尝试了本机JSON解释器,但是由于某些风格化的字符,我收到了错误消息。
def main():
file_path = filedialog.askopenfilename()
df = pd.read_json(file_path)
print(df)
Json文件有效且格式如下:
{
"Default": [{
"ItemID": "11111",
"Title": "A super captivating title",
"Date": "July 22, 2019",
"URL": "www.someurl.com",
"BodyText": "some text."
}, {
"ItemID": "22222",
"Title": "Even more captivating title",
"Date": "July 12, 2019",
"URL": "www.differenturl.com",
"BodyText": "different text"
}]
}
现在,我了解到“默认”被解释为JSON对象,以及为什么将其用作列。我尝试了几个不同方向的read_json(),但是得到的结果大致相同。
我希望将ItemID,Title,Date,URL和BodyText作为列,并将它们的值适当地指定为行。非常感谢您的帮助,我找不到类似的问题,但如果在之前已经回答过,请给我指出正确的方向。
答案 0 :(得分:0)
没有read_json
东方人可以做到。您需要将"Default"
内容传递给DataFrame
构造函数:
import json
import pandas as pd
with open('temp.txt') as fh:
df = pd.DataFrame(json.load(fh)['Default'])