TypeError:“int”对象在Python嵌套列表中不可下标

2024-10-04 03:19:45 发布

您现在位置:Python中文网/ 问答频道 /正文

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

如:

[(1024, jkhsa97890),(1025, khka65757),(1025, kjhaksd87987), ....]

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

存储在记录中的数组:

(1024, jkhsasa97890)
(1025, khkaada65757)
(1025, kjhaksd87987)
....

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

但是错误发生在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]

错误:

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

每次完成嵌套循环后,值都会存储在另一个位置,然后再被重写


Tags: 代码in列表for字典错误记录record
1条回答
网友
1楼 · 发布于 2024-10-04 03:19:45

您的列表是两级嵌套列表。分派值时不需要嵌套循环。在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"

相关问题 更多 >