在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)在每次迭代中更好地理解实际发生的事情。

最新更新