类型错误:“int”对象在 Python 嵌套列表中不可下标

Kas*_*har 0 python dictionary list nested-lists python-3.x

在下面的代码中,queryResult是一个嵌套列表。嵌套列表意味着所有列表值都有另一个列表。

喜欢:

[(1024, jkhsa97890),(1025, khka65757),(1025, kjhaksd87987), ....]
Run Code Online (Sandbox Code Playgroud)

因此,在第一个循环中,我们从记录中获取列表queryResult并将它们存储在记录中。

存储在记录中的数组:

(1024, jkhsasa97890)
(1025, khkaada65757)
(1025, kjhaksd87987)
....
Run Code Online (Sandbox Code Playgroud)

然后,通过 中列表中的第二个 for 循环record,我们获取值,然后dictionary通过为每个值提供键将其复制到 a 。

但错误发生在value4['videoid'] = item[0]。是value4['videoid']字典键,item[0]是一个整数,第一次迭代的值为 1024。

类似地,value4['videokey']是字典键,item[1]是字符串,对于第一次迭代,它是jkhsasa97890等等。

代码:

value4 = dict() 

for record in queryResult:

    for item in record:
        value4['videoid'] = item[0]
        value4['videokey'] = item[1]
Run Code Online (Sandbox Code Playgroud)

错误:

Traceback (most recent call last):
  File "E:\demo.py", line 118, in <module>
    value4['videoid'] = item[0]
TypeError: 'int' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)

每次完成嵌套循环后,值在被覆盖之前都会存储在另一个位置。

Nik*_*o B 5

您的列表是一个两级嵌套列表。您不需要嵌套循环来分派您的值。在 queryResult 的第一个循环中,您将记录元组。此时记录已经包含您想要通过索引获取单个元素的内容。

value4 = dict() 
for record in queryResult:          # example : record = (1024, "jkhsasa97890")
    value4['videoid'] = record[0]   # record[0] is 1024
    value4['videokey'] = record[1]  # record[1] is "jkhsasa97890"
Run Code Online (Sandbox Code Playgroud)