如何使用方括号处理列表记录

时间:2019-07-26 01:55:07

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

尝试使用python脚本调用api。我的数据位于列表中,并带有方括号。 API需要大括号

我在下面的列表中有一些记录

[[1, '12334', 'test1', '10', '20', '30', '2000', '5/15/2019', '35.7', '101', 'TRUE'], [2, '56789', 'Test2', '10', '20', '35', '10000', '6/20/2019', '120.99', '102', 'FALSE'], [3, '67890', 'Test3', '10', '20', '40', '1000', '7/20/2019', '100.99', '103', 'FALSE']]

我将运行python3脚本以上述数据调用api。此列表将作为json传递以调用api

api正在接收格式为-

{
  "testInputs": [
    {
      "testId": 1,
      "testitem": 12334,
      "Name": "Test1",
      "dn": 10,
      "dt": 20,
      "cs": 30,
      "in": 2000,
      "op": "2019-05-15",
      "re": 35.7,
      "nr": 101,
      "anni: true
    },
    {
      "testId": 2,
      "testitem": 56789,
      "Name": "Test2",
      "dn": 10,
      "dt": 20,
      "cs": 35,
      "in": 10000,
      "op": "2019-06-20",
      "re": 120.99,
      "nr": 102,
      "anni": false
    }
  ]
}

当我在json.dump中传递列表记录并调用api时,它带有方括号-如

{"testInputs": [[1, "78901", "Test1", "10", "20", "45", "3000", "8/20/2019", "50.99", "104", "TRUE"], [2, "89012", "Test2", "10", "20", "50", "4000", "7/20/2019", "60.99", "105", "FALSE"], [3, "90123", "Test3", "10", "20", "55", "5000", "7/15/2019", "70.99", "106", "FALSE"]]}

如何获取大括号中的记录以匹配api的格式?

1 个答案:

答案 0 :(得分:0)

列出所需的键:

keys = ["testId", "testitem", ..., "nr", "anni"]

如果您将输入列表命名为data,并且始终按正确的顺序排列项目,则可以通过将键和值压缩在一起来制作字典:

result = [dict(zip(keys, d)) for d in data]

您似乎正在寻找字典的另一层:

{"testInputs": result}

OR

{"testInputs": [dict(zip(keys, d)) for d in data]}