Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 处理字典列表中的None_Python 2.7_List_Dictionary - Fatal编程技术网

Python 2.7 处理字典列表中的None

Python 2.7 处理字典列表中的None,python-2.7,list,dictionary,Python 2.7,List,Dictionary,通过此for循环: 范围内i的(len(数据_df)): 对于范围内的j(len(数据\ df.iloc[i]。事件\更新)): 打印(数据\ df.iloc[i]。事件\更新[j]。获取(“受影响的\组件”)) 我得到的回应如下: [{u'old_status':u'operation',u'code':u'rwdp37x0698r',u'name':u'AA',u'new_status':u'operation'}] [{u'old_status':u'partial_disrupt',u

通过此for循环:

范围内i的
(len(数据_df)):
对于范围内的j(len(数据\ df.iloc[i]。事件\更新)):
打印(数据\ df.iloc[i]。事件\更新[j]。获取(“受影响的\组件”))
我得到的回应如下:

[{u'old_status':u'operation',u'code':u'rwdp37x0698r',u'name':u'AA',u'new_status':u'operation'}]
[{u'old_status':u'partial_disrupt',u'code':u'rwdp37x0698r',u'name':u'AA',u'new_status':u'operational'}]
[{u'old_status':u'operational',u'code':u'rwdp37x0698r',u'name':u'AA',u'new_status':u'partial_dispension']
[{u'old_status':u'partial_dispension',u'code':u'31tyncvy5ng7',u'name':u'AB',u'new_status':u'operational'}]
[{u'old_status':u'operational',u'code':u'31tyncvy5ng7',u'name':u'AB',u'new_status':u'partial_dispension'}]
没有一个
没有一个
[{u'old_状态]:u'partial_disrupt',u'code':u'xvgbw19sgbrj',u'name':u'AC',u'new_状态]:u'operation',{u'old_状态]:u'partial_disrupt',u'code':u'tyncvy5ng7',u'name':u'AC',u'new u_'status':u'operation',{u'old_状态]:u'partial_大修',u'code':u'zgfkydf6p',u'name':u'AC',u'new operation',{u'old_status':u'partial_disrupt',u'code':u'rwdp37x0698r',u'name':u'AA',u'new_status':u'operation'},{u'old_status':u'partial_disrupt',u'code':u'lvj41y83ghdg',u'name':u'AD',u'new u____status':u'operation'},{u'old_'status':u'partial__'disru disru unction',u'qdjrpnyn4mb u',u'code':u'name',{u'old_status':u'partial_dispension',u'code':u'24zyv2d3p2jf',u'name':u'AC',u'new_status':u'operational'}]
没有一个
[{u'old_status':u'operational',u'code':u'31tyncvy5ng7',u'name':u'AA',u'new_status':u'major_dispension']
没有一个
没有一个
...
如果你注意到的话,这里有一些None。我知道那里没有值,所以我想把它转换成一个字典列表,看起来像这样
[{'None':'None'}]
-这样它看起来像输出响应中的其他列表-这样我就可以将它保存到另一个列表中,这样我就可以从中获取
名称
(使用
列表[I][j].dict.get()
)。我相信你明白了

问题是: 我能够将for loops的输出转换为字典列表(使用list.append()函数),并使用

infected_components_variable=[“NONE”,如果val是NONE-else,则为infected_components_variable中val的值]
受影响的\u组件\u变量
是包含上述for循环输出的列表。它如下所示:

[{u'old_status':u'operation',u'code':u'rwdp37x0698r',u'name':u'AA',u'new_status':u'operation'}]
[{u'old_status':u'partial_disrupt',u'code':u'rwdp37x0698r',u'name':u'AA',u'new_status':u'operational'}]
[{u'old_status':u'operational',u'code':u'rwdp37x0698r',u'name':u'AA',u'new_status':u'partial_dispension']
...
“没有”
...
这不符合我的目的,因为当我执行
列出[I][j].dict.get()
,并且当它达到“NONE”时,它抛出一个错误,读取
AttributeError:“str”对象没有属性“get”
,原因很明显

为了避免这一切,我可以这样做:

范围内i的
(len(数据_df)):
对于范围内的j(len(数据\ df.iloc[i]。事件\更新)):
对于范围内的k(len(数据\u df.iloc[i]。事件\u更新[j]。获取(“受影响的\u组件”):
打印(数据\ df.iloc[i]。事件\更新[j]。获取(“受影响的\组件”)[k]。获取(“名称”))
出于同样明显的原因,这会引发同样的错误

因此,我认为我需要在列表级别执行以下操作:
[{'None':'None'}]
,因此当我执行
list[I][j].dict.get()
时,我会得到正确的响应


非常感谢您的帮助。

为什么不设置如下变量

noneResponse = [{u'None': u'None'}]
如果没有,则分配该值

AffectedComponentsVariable = data_df.iloc[i].incident_updates[j].get("affected_components")
AffectedComponentsVariable = NoneResponse if AffectedComponentsVariable is None else AffectedComponentsVariable

所以我刚刚注意到,我从初始for循环中得到的输出是:
print(data\u df.iloc[I].incident\u updates[j].get(“受影响的\u组件”)
与我将其附加到列表中时(名为
受影响的\u组件变量
)的输出不同。顺序已经改变;也就是说,列表中dict的顺序变得混乱。这不重要,但看起来即使是列表的顺序也改变了。如果我理解正确的话,情况不应该是这样。仅供参考,正如您可能猜到的,这是一个JSON数据。除此之外,JSON和Python列表是否存在限制?