Python 如何将返回的词典转换为一个大列表?
我有一小段代码,用于查询数据库中具有特定属性的作业。然后我想单独隔离作业ID,我已经这样做了,但它会在一堆不同的字典中返回结果 如何将所有字典合并在一起,然后将其转换为一个只有作业ID的大列表?我正在使用Python 2.7Python 如何将返回的词典转换为一个大列表?,python,python-2.7,list,dictionary,Python,Python 2.7,List,Dictionary,我有一小段代码,用于查询数据库中具有特定属性的作业。然后我想单独隔离作业ID,我已经这样做了,但它会在一堆不同的字典中返回结果 如何将所有字典合并在一起,然后将其转换为一个只有作业ID的大列表?我正在使用Python 2.7 import pprint with aftractor.utils.tractor_connection() as tq: ma_jobs = tq.jobs('not done and maxactive', columns=['jid', 'title']
import pprint
with aftractor.utils.tractor_connection() as tq:
ma_jobs = tq.jobs('not done and maxactive', columns=['jid', 'title'])
ma_search = tq.jobs('not done and maxactive', columns=['jid'])
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(ma_jobs)
print ma_search
返回值:
{u'吉德:3221482},{u'吉德:3221482},{u'吉德:3221482},{u'吉德:3221109},{u'吉德:32211109},{u''吉德:327827政政政绩:3207827::,{{7878787827},,,,,{u'吉德:3221482},,,,,,{u'吉德:3221482:3221482},,,,,,,,,,,,,{u'吉德:3228960,},},,,,,,,,{u'吉德:3228除除除除除除除除除除数:3228960,,,,,,,,,,,,,,,,,,,,,,,,{学校学校:3228周五,,,,,,,{{............u'jid:3227985},{u'jid:3227984},{u'jid:3227980},{u'jid:3229049},{u'jid':3228337}]
我想要的是:
[3207827、3221652、3221482、3221109、3229185、3228951、3228953、3228952、3228960、3228956、3228950、32282022、3227226、3227982、3227985、3227984、3227980、3229049、322837]
使用以下理解:
>>> [d[u'jid'] for d in ma_jobs]
[3207827,
3221652,
3221482,
3221109,
3229185,
3228951,
3228953,
3228952,
3228960,
3228956,
3228950,
3228022,
3227226,
3227982,
3227985,
3227984,
3227980,
3229049,
3228337]
基本上,您使用的是列表理解。
ma_jobs
中的每个元素都是一个字典,其中有一个元素的键是u'jid'
,因此您基本上是获取与该键关联的值,并将其添加到动态创建的列表中。使用以下理解:
>>> [d[u'jid'] for d in ma_jobs]
[3207827,
3221652,
3221482,
3221109,
3229185,
3228951,
3228953,
3228952,
3228960,
3228956,
3228950,
3228022,
3227226,
3227982,
3227985,
3227984,
3227980,
3229049,
3228337]
基本上,您使用的是列表理解。
ma_jobs
中的每个元素都是一个字典,其中有一个元素的键是u'jid'
,因此您基本上是获取与该键相关联的值,并将其添加到动态创建的列表中。您可以使用map
函数在[3207827, 3221652, 3221482, 3221109, 3229185, 3228951, 3228953, 3228952, 3228960, 3228956, 3228950, 3228022, 3227226, 3227982, 3227985, 3227984, 3227980, 3229049, 3228337]
您可以使用
map
函数在ma_jobs=tq.jobs('not done and maxactive',columns=['jid','title'])之后执行此操作。
:
结果:
[3207827, 3221652, 3221482, 3221109, 3229185, 3228951, 3228953, 3228952, 3228960, 3228956, 3228950, 3228022, 3227226, 3227982, 3227985, 3227984, 3227980, 3229049, 3228337]
我不确定是否遵循,您是否可以详细说明我将如何在现有结构中实现这段代码?@AMist,我刚刚添加了一个更详细的解释,这段代码在Python 2中工作。我不确定是否遵循,您是否可以详细说明我将如何在现有结构中实现这段代码ng structure?@AMist,我刚刚添加了一个更详细的解释,这段代码在Python 2中工作。有几个问题,这摆脱了我的ma_jobs查询,它与ma_search查询是分开的。我两者都需要。我尝试以相同的格式将其应用于ma_search,但它显示map()至少需要两个参数。此外,它以垂直格式返回列表,如上图所示。如果我需要一个水平格式,如上图所示。作为结果发布的词典列表是
ma_jobs
或ma_search
?对于格式,您所说的水平是什么意思?我得到的输出是ng是水平的。我在每一行上都有一个JID,就像Imiguelvargasf在他的评论中一样。字典的结果是ma_search@A如果您能发布一些来自ma_search
的示例数据,您将帮助我解决此问题。有两个问题,这将摆脱我的ma_jobs查询,它与ma_search查询分开。我需要两者。我尝试了以相同的格式将其应用于ma_搜索,但上面显示map()至少需要两个参数。此外,它以垂直格式返回列表,如上图所示。如果我需要一个水平格式,如上图所示。作为结果发布的词典列表是ma_jobs
或ma_search
?对于格式,您所说的水平是什么意思?我得到的输出是ng是水平的。我在每一行上都有一个JID,就像Imiguelvargasf在他的评论中一样。字典的结果是ma_search@A如果您能发布一些来自ma_search
的示例数据,您将帮助我解决此问题。