【问题标题】:How to extract data from a JSON column from database directly to a pandas dataframe如何从数据库中的 JSON 列中直接提取数据到 pandas 数据框
【发布时间】:2018-02-12 19:18:21
【问题描述】:

您好,我是 Python 中的 Pandas 新手,我正在尝试从数据库中的特定表中提取 JSON 数据。有人可以帮我构建数据框以提取所需的数据。

以下是详细信息。 表名:员工 列名:个人资料

示例列:

{"EmpID":"1","Department":"Support","Role":{"Support":1,"Troubleshoot":2,"Update KBarticles":3},"Team_name":Royals ,"Date_Joined":" "}

我需要将上面的数据放在单独的列中。 EmpID、Role(支持)、Role(疑难解答)、Role(更新 KB)、Team_Name、Date_Joined

有人可以帮我构建上述数据框吗,谢谢。

【问题讨论】:

  • 请尝试格式化您的代码 - 您的 JSON (Royals) 中有错误。另外,你能展示一个你想要的输出的例子吗?
  • 嗨,下面给出了数据的存储方式:{"EmpID":"1","Department":"Support","Role":{1:"Support",2:" Troubleshoot",3:"Update KBarticles"},"Team_name":"Royals","Date_Joined":" "} 所需输出:如图所示imgur.com/a/iFRLJThanks..
  • 请勿将其作为评论发布。编辑问题并添加它。另外,请勿发布图片链接。将所需的输出显示为文本。查看更多:How to Askminimal reproducible example

标签: python python-3.x pandas data-science


【解决方案1】:

你可以使用 pandas json normalizer:

import pandas as pd
import json

example = '{"EmpID":"1","Department":"Support","Role":{"Support":1,"Troubleshoot":2,"Update KBarticles":3},"Team_name":"Royals","Date_Joined":" "}'

pd.io.json.json_normalize(json.loads(example))

【讨论】:

  • 您好,感谢您的回复,但是当我尝试运行查询时出现以下错误 TypeError: JSON object must be str, bytes or bytearray, not 'DataFrame' 另外我正在尝试直接从 DB 查询而不是手动传递它,在这种情况下,请您帮助我如何完成它。 Tnx。
  • 认为错误是因为您错过了示例中的“,复制粘贴我的代码,看看它是否有效,关于直接查询 - 我不知道
猜你喜欢
  • 2022-01-14
  • 1970-01-01
  • 2020-03-09
  • 1970-01-01
  • 2019-02-03
  • 2019-10-06
  • 1970-01-01
  • 1970-01-01
  • 2020-04-01
相关资源
最近更新 更多