簡體   English   中英

將字典列表轉換為字符串

[英]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.

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