【问题标题】:how to access a dictionary in list which is inside a string? [duplicate]如何访问字符串内的列表中的字典? [复制]
【发布时间】:2018-07-17 17:27:59
【问题描述】:
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

【问题讨论】:

  • 这是一个 JSON 字符串。你需要先解析它。

标签: python string list dictionary


【解决方案1】:

您可以为此使用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']

【讨论】:

    【解决方案2】:

    您可以使用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']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-20
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-13
      相关资源
      最近更新 更多