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