【问题标题】:Convert list of lists to json format (first list is header)将列表列表转换为 json 格式(第一个列表是标题)
【发布时间】:2021-01-06 20:33:28
【问题描述】:

这是一个列表示例。

[
   [hour,name,year,age],
   [12,'pravin',1997,23],
   [12,'navin',1995,25],
   [12,'prashant',1989,30]
]

如何使用 python 将其转换为下面的 json。我基本上希望我的第一个列表元素作为其他列表元素的键。基本上是这样的:

{
  results:[{
      hour : 12,
      name  : 'pravin',
      year : 1995,
      age   : 30   

      },{
      hour : 12,
      name  : 'navin',
      year : 1995,
      age   : 25   

      },{
      hour : 12,
      name  : 'prashant',
      year : 1989,
      age   : 30   

      }
      ]

}

【问题讨论】:

    标签: python json python-3.x list


    【解决方案1】:

    没有pandas的另一种解决方案:

    from pprint import pprint
    
    
    data = [
       ['hour','name','year','age'],
       [12,'pravin',1997,23],
       [12,'navin',1995,25],
       [12,'prashant',1989,30]
    ]
    
    out = {'results':[dict(zip(data[0], row)) for row in data[1:]]}
    
    pprint(out)
    

    打印:

    {'results': [{'age': 23, 'hour': 12, 'name': 'pravin', 'year': 1997},
                 {'age': 25, 'hour': 12, 'name': 'navin', 'year': 1995},
                 {'age': 30, 'hour': 12, 'name': 'prashant', 'year': 1989}]}
    

    【讨论】:

      【解决方案2】:

      您可以将它们转换为 pandas 的 DataFrame 对象,然后将其转换为 json。

      import pandas as pd
      df = pd.DataFrame(data=results[1:], columns=results[0])
      json_results = df.to_json()
      

      第二行是从您的列表列表中创建一个数据框对象。请注意,我跳过了第一个列表(即列标题)并将其仅用于列名称。 第三行创建一个 json 对象。您可以使用解析和转储来保存它。

      我建议您在 to_json() 上查看 pandas 文档中的示例

      【讨论】:

        猜你喜欢
        • 2020-02-11
        • 2016-05-27
        • 2020-03-08
        • 2019-11-10
        • 2012-09-29
        • 1970-01-01
        • 2021-03-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多