【问题标题】:python: Make json from multiple listspython:从多个列表制作json
【发布时间】:2018-03-12 10:02:18
【问题描述】:

我在python中有以下变量:

常量:

  • d["id"]

数组:

  • d[“时间”]
  • d["x"]
  • d["y"]
  • d["z"]

需要在如下视图中获取一个json:

{"data_list":[{"id":1,"time":"1","x":1,"y":1,"z":1}, {"id":1,"time":"2","x":2,"y":2,"z":2}]}

我已经通过迭代完成了。 最快的方法是什么?

【问题讨论】:

  • 添加您的尝试...

标签: python json


【解决方案1】:
import json

d = {'id' : 1, 'time' : ['1', '2'], 'x' : ['1', '2'], 'y' : ['1', '2'], 'z' : ['1', '2']}
print(json.dumps({'data_list': [{'id' : d['id'], 'time' : t, 'x' : x, 'y' : y, 'z' : z} for t, x, y, z in zip(d['time'], d['x'], d['y'], d['z'])]}, indent=2))

会给你以下 JSON 输出:

{
  "data_list": [
    {
      "id": 1,
      "time": "1",
      "x": "1",
      "y": "1",
      "z": "1"
    },
    {
      "id": 1,
      "time": "2",
      "x": "2",
      "y": "2",
      "z": "2"
    }
  ]
}

或者:

from operator import itemgetter
import json

d = {'id' : 1, 'time' : ['1', '2'], 'x' : ['1', '2'], 'y' : ['1', '2'], 'z' : ['1', '2']}
arr = ['time', 'x', 'y', 'z']

print(json.dumps({'data_list': [dict([('id', d['id'])] + list(zip(arr, v))) for v in zip(*itemgetter(*arr)(d))]}, indent=2))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 2020-05-15
    相关资源
    最近更新 更多