从 python 中的嵌套列表中提取字典元素

extract dictionary elements from nested list in python

我有一个问题。

我有一个看起来像这样的嵌套列表。

x=    [[{'screen_name': 'BreitbartNews',
   'name': 'Breitbart News',
   'id': 457984599,
   'id_str': '457984599',
   'indices': [126, 140]}],
 [],
 [],
 [{'screen_name': 'BreitbartNews',
   'name': 'Breitbart News',
   'id': 457984599,
   'id_str': '457984599',
   'indices': [98, 112]}],
 [{'screen_name': 'BreitbartNews',
   'name': 'Breitbart News',
   'id': 457984599,
   'id_str': '457984599',
   'indices': [82, 96]}]]

主列表中有一些空列表。 我想做的是提取 screen_name 并将它们附加为一个新列表,包括空列表(可能将它们记为 'null')。

y=[]
for i in x :
    for j in i :
        if len(j)==0 :
            n = 'null'
        else :
            n = j['screen_name']
    y.append(n)    

我不知道为什么上面的代码会输出一个列表,

['BreitbartNews',
 'BreitbartNews',
 'BreitbartNews',
 'BreitbartNews',
 'BreitbartNews']

不反映空子列表。

任何人都可以帮助我如何改进我的代码以使其正确吗?

您正在检查错误列表的长度。您的空列表在 i 变量中。

正确的代码是

y=[]
for i in x :
    if len(i) == 0:
        n = 'null'
    else:
        n = i[0]['screen_name']
    y.append(n)

这可能有助于 print(i) 在每次迭代中更好地理解实际发生的事情。