【问题标题】:Error occurs when I try to mount an array inside the for loop in python当我尝试在 python 中的 for 循环内安装数组时发生错误
【发布时间】:2017-09-07 10:48:06
【问题描述】:

当我尝试在 python 中的 for 循环内挂载数组时发生错误

我正处于语言过渡期,所以每天都会出现一些小疑问。

TypeError: 列表索引必须是整数或切片,而不是 str

data = []
for index, linha in enumerate(reg2):
    data['lista'][index]['name'] = linha.name,
    data['lista'][index]['document'] = linha.document

    data.append(data)

【问题讨论】:

  • 您正在使用['name']['document'] 访问列表索引。这些值需要是整数或切片,而不是字符串。另外,删除data = []之后每行开头的四个空格
  • 怎么可能?谢谢
  • 您还希望 data 成为字典,而不是列表。如果您使用print(data),您认为最终的data 对象会是什么样子?
  • 采用这种格式:{ 'lista' : [ { 'name' : 'jhon', 'document' : 'pdf'}, { 'name' : 'maria', 'document' : '文档'}]}

标签: python-3.x


【解决方案1】:

您需要一本字典列表,而不是列表。不要列举任何东西;事实上,你甚至不需要循环:

docs = [{'name': linha.name, 'document': linha.document} for linha in reg2]
data = {'lista' : docs}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2013-11-18
    • 2022-11-29
    • 2015-12-16
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    相关资源
    最近更新 更多