python - pd.read_json() 返回 1 列的数据帧
问题描述
目前,我正在尝试将 json 文件从 webscrape 加载到 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 作为列,并将它们的值适当地指定为行。感谢您提供任何帮助,我找不到类似的问题,但如果之前已经回答,请指出正确的方向。
解决方案
没有read_json
东方可以做到这一点。您需要将"Default"
内容传递给DataFrame
构造函数:
import json
import pandas as pd
with open('temp.txt') as fh:
df = pd.DataFrame(json.load(fh)['Default'])
推荐阅读
- amazon-web-services - AWS在构建docker容器时如何处理程序化凭证
- python - 在不同的图上绘制散点图
- algorithm - 有没有办法在没有条件结构的情况下将一组不相等的线段投射到枚举中?
- php - Symfony 5 / Docker 连接到 MS SQL Server 但出现 MySQL 错误
- java - 使用 azure adfs 和 springboot api 进行角度登录
- javascript - 布伦特里市场 | 商户主账户收款后如何拆分?
- java - 从现有的 java 项目自动化测试
- opencv - 如何在进行特征匹配之前从锚图像中识别出近乎重复的特征?
- javascript - 具有原型而非函数的猫鼬模型构造函数
- reactjs - 超过最大更新深度。在 `react-DatePicker` 和 `Formik`