2017-08-01 193 views
2

我想知道如何使用JSON对象的两个值作为键/值对将json列表转换为字典。 的JSON看起来是这样的:Python - 将JSON对象转换为字典

"test": [ 
       { 
        "name": "default", 
        "range": "100-1000" 
       }, 
       { 
        "name": "bigger", 
        "range": "1000-10000" 
       } 
     ] 

我基本上要在字典使用的名称为重点和范围内的值。所以在这种情况下字典将是{default:100-1000} {bigger: 1000-10000}

这可能吗?

+0

你想改变一个字符串为整数..?也许你应该首先将你的JSON字符串设置为整数。 – baranskistad

+0

[将JSON字符串转换为Dictionary Not List]的可能的重复(https://stackoverflow.com/questions/19483351/converting-json-string-to-dictionary-not-list) –

+1

但在你的问题中,你定义了两个字典作为输出? –

回答

5

您可以先将JSON字符串加载到包含json.loads的字典中。接下来,您可以使用字典解析来进行后期处理它:

from json import loads 

{ d['name'] : d['range'] for d in loads(json_string)['test'] } 

然后我们得到:

>>> { d['name'] : d['range'] for d in loads(json_string)['test'] } 
{'bigger': '1000-10000', 'default': '100-1000'} 

的情况下有两个子字典具有相同,那么最后一个会存储在结果中。