繁体   English   中英

使用 python 将 dict 列表转换为列表

[英]Convert list of dict to lists using python

有两个包含值的列表:

[{'_id': ObjectId('5ab123e123c075f123ec11ab'),
  'stp_id': ObjectId('5ab000c12345ac9d12345678'),
  'date': Timestamp('2019-11-01 05:38:44.089000')}]

[{'_id': ObjectId('5ab123e123c075f123ec11ad'),
  'stp_id': ObjectId('5ab000c12345ac9d12345679'),
  'date': Timestamp('2019-10-01 05:38:44.089000')},
{'_id': ObjectId('5ab123e123c075f123ec11ac'),
  'stp_id': ObjectId('5ab000c12345ac9d12345679'),
  'date': Timestamp('2019-10-01 05:38:44.089000')}]

如何将这些字典列表转换为这样的字典:

{{'_id': ObjectId('5ab123e123c075f123ec11ab'),
  'stp_id': ObjectId('5ab000c12345ac9d12345678'),
  'date': Timestamp('2019-11-01 05:38:44.089000')}}

{{'_id': ObjectId('5ab123e123c075f123ec11ad'),
  'stp_id': ObjectId('5ab000c12345ac9d12345679'),
  'date': Timestamp('2019-10-01 05:38:44.089000')},
{'_id': ObjectId('5ab123e123c075f123ec11ac'),
  'stp_id': ObjectId('5ab000c12345ac9d12345679'),
  'date': Timestamp('2019-10-01 05:38:44.089000')}}

如果要将列表转换为 dict 可以使用以下方法,

l1=[{"id":1,"stp_id":2,"date":3}]

d1=dict()

d1["l1"]=l1

print(d1)

output:

{'l1': [{'id': 1, 'stp_id': 2, 'date': 3}]}

按照这种方法,您可以将多个列表添加到一个字典中。

{{'_id': ObjectId('5ab123e123c075f123ec11ad'),
  'stp_id': ObjectId('5ab000c12345ac9d12345679'),
  'date': Timestamp('2019-10-01 05:38:44.089000')},
{'_id': ObjectId('5ab123e123c075f123ec11ac'),
  'stp_id': ObjectId('5ab000c12345ac9d12345679'),
  'date': Timestamp('2019-10-01 05:38:44.089000')}}

不是dict ,因为dict需要有一个key和一个value

但是您可以从字典列表中改为单独的字典

尝试这个:

li = [{'_id': ObjectId('5ab123e123c075f123ec11ad'),
       'stp_id': ObjectId('5ab000c12345ac9d12345679'),
       'date': Timestamp('2019-10-01 05:38:44.089000')},
      {'_id': ObjectId('5ab123e123c075f123ec11ac'),
       'stp_id': ObjectId('5ab000c12345ac9d12345679'),
       'date': Timestamp('2019-10-01 05:38:44.089000')}]

for x in li:
    print(dict(x))

您可以在列表理解中使用 dict.values() 来获取值,然后使用 zip 来获取列:

[list(col) for col in zip(*[d.values() for d in myList])]

[[0, 1], [2, 3]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM