【问题标题】:Save JSON data from lists in python从 python 列表中保存 JSON 数据
【发布时间】:2021-05-31 00:23:16
【问题描述】:

我想将一些数据自动保存在 json 文件中。这是我的数据:

names = ['name1','name2','name3','name2']
number1 = [43,32,12,12]
number2 = [3,6,6,3]
dates = ['01.03.2021 13:05:59','01.03.2021 13:46:04','01.03.2021 14:05:59','01.03.2021 13:30:04']

我想要的是这样的:

{
    "items":[
        {
        "time": "01.03.2021 13:54:21",
        "name": "name1",
        "age": 43,
        "coins": 3
        },
        {
        "time": "01.03.2021 13:46:04",
        "name": "name2",
        "age": 32,
        "coins": 6
        }
        ...
    ]
}

name1 的元素带有 [0]name2 带有 [1] 等)

键或结构无关紧要,只要有意义就行了。

【问题讨论】:

    标签: python json python-3.x list dictionary


    【解决方案1】:

    使用zip() 在一行中尝试:

    result = {'items':[{'time':i[0],'name':i[1], 'age':i[2], 'coins':i[3]} for i in zip(dates,names,number1,number2)]}
    

    结果将是:

    {'items': [
      {'time': '01.03.2021 13:05:59', 'name': 'name1','age': 43,'coins': 3},
      {'time': '01.03.2021 13:46:04', 'name': 'name2', 'age': 32, 'coins': 6},
      {'time': '01.03.2021 14:05:59', 'name': 'name3', 'age': 12, 'coins': 6},
      {'time': '01.03.2021 13:30:04', 'name': 'name2', 'age': 12, 'coins': 3}
    ]}
    

    【讨论】:

      【解决方案2】:

      只需创建一个字典列表并使用json 写入文件:

      output = []
      for name, num1, num2, date in zip(names, number1, number2, dates):
          dic = dict()
          dic["time"] = date
          dic["name"] = name
          dic["age"] = num1
          dic["coins"] = num2
          output.append(dic)
      
      data = {"items": output}
      import json
      with open('out.json', 'w') as outfile:
          json.dump(data, outfile)
      

      注意:dic 对象可以删除,但这样看起来可读。

      out.json的内容:

      {"items": [{"time": "01.03.2021 13:05:59", "name": "name1", "age": 43, "coins": 3}, {"time": "01.03.2021 13:46:04", "name": "name2", "age": 32, "coins": 6}, {"time": "01.03.2021 14:05:59", "name": "name3", "age": 12, "coins": 6}, {"time": "01.03.2021 13:30:04", "name": "name2", "age": 12, "coins": 3}]}
      

      【讨论】:

        猜你喜欢
        • 2016-01-05
        • 2021-07-22
        • 2018-06-05
        • 1970-01-01
        • 2021-12-19
        • 1970-01-01
        • 2019-11-16
        • 2016-03-14
        • 1970-01-01
        相关资源
        最近更新 更多