【发布时间】:2016-01-20 00:56:38
【问题描述】:
我目前正在尝试获取从 MongoDB 查询接收到的 JSON 文档的某些字段的值。该查询返回一个字典,通过在查询中使用.values(),我得到了一个值列表。但是,此列表的某些值是另一个包含字典的列表。我正在尝试找出动态获取列表中已有值的值以及在子列表中找到的字典值的最佳方法。
例如,我有一个名为text_list的列表:
>>> text_list
[[{u'field1': u'field1_value1', u'field2': u'field2_value1'},
{u'field2': u'field2_value2'}],
u'value1',
u'value2']
我只想从这个列表中获取值:field1_value1, field2_value1, field2_value2, value1, value2(或者将它们放在一个新列表中,或者只是将这些值连接成一个大字符串)。
我想为多个列表执行此过程,但有时这些列表有这些额外的字典,而其他时候则没有。 什么是获取我正在寻找的值的最佳(最少计算密集/最快)方法
我想出了以下方法:
def concatenate_list(inList):
outString = '' #empty string that the values will be added to
for item in inList:
if type(item) == list:
for i in np.arange(len(item)):
for subitem in item[i].values():
outString = outString+' '+subitem
else:
outString = outString+' '+item
return outString
>>> concatenate_list(text_list)
u'field1_value1 field2_value1 field2_value2 value1 value2'
这给了我想要的结果,但必须有比这更好的方法。当我必须在数千个列表上运行此函数时,我认为这不是很有效。
【问题讨论】:
标签: python list python-2.7 dictionary