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)
每次完成嵌套循环后,值在被覆盖之前都会存储在另一个位置。
您的列表是一个两级嵌套列表。您不需要嵌套循环来分派您的值。在 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)