3 回答

TA贡献1827条经验 获得超8个赞
你的问题不是很好,但我会做一些假设并尝试提供帮助。
试试这个:
import numpy as np
nan = np.nan
dict_list = [{'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2018-Q3', 'y': 169.80000000000001, 'text': '169.8', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2018-Q4', 'y': 53.829999999999998, 'text': '53.83', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2019-Q1', 'y': 63.420000000000002, 'text': '63.42', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2019-Q2', 'y': 42.369999999999997, 'text': '42.37', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2019-Q3', 'y': nan, 'text': 'nan', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2019-Q4', 'y': nan, 'text': 'nan', 'showarrow': False}]
filtered_dict_list = [x for x in dict_list if not np.isnan(x['y'])]
这是一个简单的列表理解过滤,谷歌它......
祝你好运!
做出的假设:
nan 应该是 numpy.nan
“删除”是指“获取不包含不需要的字典的新字典列表

TA贡献1815条经验 获得超10个赞
下面的工作。
newrecord2 = [] for d in annotations2: if d['text'] != 'nan': # 前提是你在开头“import numpy.nan as nan” newrecord2.append(d) #print newrecord

TA贡献1943条经验 获得超7个赞
以下解决您的问题:
# let name your initial record "record"
# record = [{'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2018-Q3', 'y': 169.80000000000001, 'text': '169.8', 'showarrow': False},..]
#
# Let initialise a new record
newrecord = []
for d in record:
if d['y'] is nan: # provided that you "import numpy.nan as nan" at the beginning
del d['y']
newrecord.append(d)
# “newrecord”对应没有d[y] = nan的新记录。
添加回答
举报