【问题标题】:How to convert dataframe output to json format and then Normalize the data?如何将数据帧输出转换为 json 格式,然后规范化数据?
【发布时间】:2019-12-21 11:00:31
【问题描述】:

我正在运行一个 sql 并输出我正在阅读的 pandas df。现在我需要将数据转换为 json 并需要对数据进行规范化。我尝试了 to_json 但这给出了部分解决方案。

数据帧输出:

| SalesPerson   | ContactID |
|12345  |Tom|
|12345  |Robin|
|12345  |Julie|

预期的 JSON:

 {"SalesPerson": "12345", "ContactID":"Tom","Robin","Julie"}

请看下面我试过的代码。

q = Select COL1,  SalesPerson   , ContactIDfrom table;


df = pd.read_sql(q, sqlconn)

df1=df.iloc[:, 1:2]


df2 = df1.to_json(orient='records')

还有我也不需要的 to_json 结果括号。

【问题讨论】:

  • 您的预期输出是无效的 JSON
  • 我的错.. 更正了 {"SalesPerson": 12345, "ContactID":["Tom","Robin","Julie"]}

标签: json python-3.x pandas


【解决方案1】:

试试这个:

df.groupby('SalesPerson').apply(lambda x: pd.Series({
    'ContactID': x['ContactID'].values
})).reset_index().to_json(orient='records')

输出(漂亮的打印):

[
  {
    "SalesPerson": 1,
    "ContactID": ["Tom", "Robin", "Julie"]
  },
  {
    "SalesPerson": 2,
    "ContactID": ["Jack", "Mike", "Mary"]
  }
]

【讨论】:

  • 这个工作正常。谢谢!还有一件事。如果我不想要开始和结束括号 [] 那么我需要修改什么。
  • 这会使 JSON 无效。
猜你喜欢
  • 2023-03-31
  • 2020-10-28
  • 2023-03-04
  • 2020-05-06
  • 2018-01-23
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
  • 1970-01-01
相关资源
最近更新 更多