[英]Convert list of dicts to string
我對Python還是很陌生,所以如果這比我看來容易,請原諒我。
我收到的字典列表如下:
[{'directMember': 'true', 'memberType': 'User', 'memberId': 'address1@example.com'},
{'directMember': 'true', 'memberType': 'User', 'memberId': 'address2@example.com'},
{'directMember': 'true', 'memberType': 'User', 'memberId': 'address3@example.com'}]
我想生成一個簡單的memberId字符串,例如
address1 @ example.com,address2 @ example.com,address3 @ example.com
但是我嘗試過的將列表轉換為字符串的每種方法均會失敗,因為涉及字典。
有什么建議嗎?
', '.join(d['memberId'] for d in my_list)
既然您說過您是Python的新手,我將解釋它是如何工作的。
str.join()
方法組合了一個可迭代對象(如列表)的每個元素,並將調用該方法的字符串用作分隔符。
提供給該方法的可迭代項是生成器表達式(d['memberId'] for d in my_list)
。 實質上,這將為您提供由列表[d['memberId'] for d in my_list]
的列表[d['memberId'] for d in my_list]
創建的列表”中的每個元素,而無需實際創建列表。
這些單線還可以,但初學者可能無法理解。 在這里將它們分解:
list_of_dicts = (the list you posted)
好的,我們有一個列表,其中的每個成員都是字典。 這是一個list comprehension
:
[expr for d in list_of_dicts]
這就像for d in list_of_dicts ...
所說。 對每個d評估expr
並生成一個新列表。 您還可以通過if
選擇其中一些,請參閱文檔。
那么,我們想要什么expr
? 在每個字典d
,我們都需要鍵'memberId'
。 那是d['memberId']
。 所以現在列表理解為:
[d['memberId'] for d in list_of_dicts]
這為我們提供了電子郵件地址列表,現在將它們與逗號放在一起,我們使用join
(請參閱文檔):
', '.join([d['memberId'] for d in list_of_dicts])
我看到其他張貼者在join
的參數列表中遺漏了[],並且有效。 必須查一下,我不知道為什么你可以省掉它。 HTH。
訪問字典。
', '.join(d['memberId'] for d in L)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.