簡體   English   中英

從列表中的字典和 Python 中的字符串中提取值

[英]Extract a value from a dictionary that is inside a list and a string in Python

我似乎無法從 Python 中的列表和字符串中的字典值創建列表

string = "[{'iso_639_1': 'en', 'name': 'English'}, {'iso_639_1': 'ru', 'name': 'Pусский'}, {'iso_639_1': 'es', 'name': 'Español'}]"

desired_outcome = ['English', 'Pусский', 'Español']

我概括了它,但這就是我相信 Python 所尋找的。 這是假設您總是想要與每個字典的“名稱”鍵關聯的值。

starting_dict = [{'key1': 'val1','name': 'val2'}, 
                 {'key3': 'val3','name': 'val4'}, 
                 {'key5':'val5','name': 'val6'}]
value_lst = list()
for my_dict in starting_dict:
  value_lst.append(my_dict['name'])
print(value_lst)

Output:

['val2', 'val4', 'val6']

我首先將字符串格式化為 JSON,然后使用 json.loads 將字符串反序列化為 Python 字典。

string = '[{"iso_639_1": "en", "name": "English"}, {"iso_639_1": "ru", "name": "Pусский"}, {"iso_639_1": "es", "name": "Español"}]'
dictionary = json.loads(string)

然后從字典列表中收集一個值,使用列表推導:

names = [i['name'] for i in dictionary]

我真正喜歡的關於 Python 的一件事是 function eval()。

你的字符串是:

string = "[{'iso_639_1': 'en', 'name': 'English'}, {'iso_639_1': 'ru', 'name': 'Pусский'}, {'iso_639_1': 'es', 'name': 'Español'}]"

運行這個:

desired_outcome = []

for d in eval(string):
    desired_outcome.append(d['name'])

print(desired_outcome)

暫無
暫無

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

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