簡體   English   中英

如何更改列表內字典中的字符串鍵| python3.6

[英]how to change string key in dictionary inside list | python3.6

我想將鍵名'user_id'更改為'sender'例如:

[{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
  'message_id': 1,
  'user_id': 1000000},
 {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
  'message_id': 2,
  'user_id': 1000000},
 {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
  'message_id': 3,
  'user_id': 1000000},
 {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
  'message_id': 4,
  'user_id': 1000000}]

至 :

[{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
  'message_id': 1,
  'sender': 1000000},
 {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
  'message_id': 2,
  'sender': 1000000},
 {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
  'message_id': 3,
  'sender': 1000000},
 {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
  'message_id': 4,
  'sender': 1000000}]

我該怎么辦?

只需遍歷數據並更改將適當的分配給'sender'鍵的字典,即可從'user_id' pop

for d in data:
    d['sender'] = d.pop('user_id')

沒有循環怎么辦?

一線解決方案:

list(map(lambda x:x.__setitem__('sender',x.pop('user_id')),your_data))

數據是:

your_data=[{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
  'message_id': 1,
  'user_id': 1000000},
 {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
  'message_id': 2,
  'user_id': 1000000},
 {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
  'message_id': 3,
  'user_id': 1000000},
 {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3',
  'message_id': 4,
  'user_id': 1000000}]

輸出:

[{'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3', 'message_id': 1, 'sender': 1000000}, {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3', 'message_id': 2, 'sender': 1000000}, {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3', 'message_id': 3, 'sender': 1000000}, {'chat_id': 'e3c2b14ded7a32c41bf0186b6172d8e3', 'message_id': 4, 'sender': 1000000}]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM