【问题标题】:Convert pandas DataFrame to nested JSON array将 pandas DataFrame 转换为嵌套的 JSON 数组
【发布时间】:2020-09-29 15:46:02
【问题描述】:

我有一个df如下:

                dates  values
0 2020-01-01 00:15:00    25.7
1 2020-01-01 00:30:00    25.0
2 2020-01-01 00:45:00    24.6
3 2020-01-01 01:00:00    24.6
4 2020-01-01 01:15:00    25.0
5 2020-01-01 01:30:00    25.6
6 2020-01-01 01:45:00    26.2
7 2020-01-01 02:00:00    26.5
8 2020-01-01 02:15:00    26.3
9 2020-01-01 02:30:00    25.7

我愿意:

df = df.to_json(orient='records', date_unit='s')
print({'items' : df})

它给我的输出如下:

{
    "items": "[{\"dates\":1577837700,\"values\":25.7},{\"dates\":1577838600,\"values\":25.0},{\"dates\":1577839500,\"values\":24.6},{\"dates\":1577840400,\"values\":24.6},{\"dates\":1577841300,\"values\":25.0},{\"dates\":1577842200,\"values\":25.6},{\"dates\":1577843100,\"values\":26.2},{\"dates\":1577844000,\"values\":26.5},{\"dates\":1577844900,\"values\":26.3},{\"dates\":1577845800,\"values\":25.7}]" }

我希望输出看起来像

{
    "items": [[1577837700, 25.7],[1577838600,25.0],[1577839500,24.6],[1577840400,24.6],[1577841300,25.0],[1577842200,25.6],[1577843100,26.2],[1577844000,26.5],[1577844900,26.3],[1577845800,25.7]] }

也就是说,从我从代码中得到的输出中,我希望所有记录都采用list 而不是dict 的形式

有什么办法可以做到吗?

【问题讨论】:

    标签: python json python-3.x pandas dataframe


    【解决方案1】:

    试试orient="values"

    df.to_json(orient='values', date_unit='s')    
    

    '[[1577837700,25.7],[1577838600,25.0],[1577839500,24.6],[1577840400,24.6],[1577841300,25.0],[1577842200,25.6],[1577843100,26.2],[1577844000,26.5],[1577844900,26.3],[1577845800,25.7]]'}
    

    这只是将.values(或.to_numpy)输出转储为json。请参阅DataFrame.to_json 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2019-06-09
      • 2014-06-27
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 2021-12-29
      相关资源
      最近更新 更多