【问题标题】:How to create a nested array of JSON objects using Python?如何使用 Python 创建 JSON 对象的嵌套数组?
【发布时间】:2018-11-27 03:43:04
【问题描述】:

期望的输出:

{"MainKey": 
   [{"key01":"value01","key02":"value02"},
    {"key11":"value11","key22":"value02"}
   ]
}

我试过的代码:

data = {}
data2=[{}]

data2[0]['key01'] = 'value01'
data2[0]['key02']=  'value02'

data2[1]['key11'] = 'value11'  #index out of bounds error
data2[1]['key12']=  'value12'

data['MainKey']=data2

import json 
with open('try.json", 'w') as outfile:
 json.dump(data,outfile)

但这会导致 data2 中第二组值的索引超出范围错误。我该如何解决?

【问题讨论】:

  • 您收到错误是因为data2 中只有一个字典尝试:data2=[{}, {}]
  • @Rakesh 我将如何创建一个包含 n 个此类项目的数组?

标签: python arrays json python-3.x


【解决方案1】:

一种方法是使用range 创建字典的数量。

例如:

data = {}

data2 = [{} for i in range(2)]

data2[0]['key01'] = 'value01'
data2[0]['key02']=  'value02'

data2[1]['key11'] = 'value11'
data2[1]['key12']=  'value12'

data['MainKey']=data2
print(data)

输出:

{'MainKey': [{'key01': 'value01', 'key02': 'value02'}, {'key12': 'value12', 'key11': 'value11'}]}

【讨论】:

  • 如果它解决了您的问题,请接受。谢谢。
【解决方案2】:

data2是一个只有一项的列表,所以它的索引不能大于0。

>>> data2=[{}]
>>> data2[0]['key01'] = 'value01'
>>> data2[0]['key02'] = 'value02'
>>> data2

[{'key01': 'value01', 'key02': 'value02'}]

【讨论】:

  • 我想通了,但我该如何解决这个问题并在 data2 中创建一个包含 n 个 {} 项的数组?
  • data2 = [{} for i in range(n)]
猜你喜欢
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-17
  • 1970-01-01
  • 2021-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多