如何访问字符串中的列表中的词典?

2024-06-16 08:53:47 发布

您现在位置:Python中文网/ 问答频道 /正文

value = "[
{"Id":2,"Name":"Sony","WarehouseName":"Bangalore"},
{"Id":3,"Name":"JBL","WarehouseName":"Nanjangud"},
{"Id":4,"Name":"Skull Candy 2","WarehouseName":"Mysore"},
{"Id":5,"Name":"Skull Candy 3","WarehouseName":"Mysore"}
]"

这个字符串包含一个列表,其中有一个字典。如何获取“名称”:

索尼

JBL公司

骷髅糖2

骷髅糖3


Tags: 字符串nameid列表字典valuesonycandy
2条回答

您可以使用json模块来完成此任务

>>> import json
>>> json.loads(value)
[{'Id': 2, 'Name': 'Sony', 'WarehouseName': 'Bangalore'},
 {'Id': 3, 'Name': 'JBL', 'WarehouseName': 'Nanjangud'},
 {'Id': 4, 'Name': 'Skull Candy 2', 'WarehouseName': 'Mysore'},
 {'Id': 5, 'Name': 'Skull Candy 3', 'WarehouseName': 'Mysore'}]

得到所有的名字

>>> [d['Name'] for d in json.loads(value)]
['Sony', 'JBL', 'Skull Candy 2', 'Skull Candy 3']

您可以使用jsonast模块

例如:

import json
value = """[{"Id":2,"Name":"Sony","WarehouseName":"Bangalore"},{"Id":3,"Name":"JBL","WarehouseName":"Nanjangud"},{"Id":4,"Name":"Skull Candy 2","WarehouseName":"Mysore"},{"Id":5,"Name":"Skull Candy 3","WarehouseName":"Mysore"}]"""
print( json.loads(value) )

或者

import ast
value = """[{"Id":2,"Name":"Sony","WarehouseName":"Bangalore"},{"Id":3,"Name":"JBL","WarehouseName":"Nanjangud"},{"Id":4,"Name":"Skull Candy 2","WarehouseName":"Mysore"},{"Id":5,"Name":"Skull Candy 3","WarehouseName":"Mysore"}]"""
print( ast.literal_eval(value) )

print( map(lambda x: x["Name"], ast.literal_eval(value)) )

输出:

[u'Sony', u'JBL', u'Skull Candy 2', u'Skull Candy 3']

相关问题 更多 >