在Python中获取json的特定部分

时间:2016-04-12 14:56:53

标签: python arrays json

我有以下json

{
"1102": {
    "colours": {
        "r": -70.353, 
        "g": -33.151, 
        "b": -33.824, 
        "y": -71.043
    }, 
    "texture": "grainy", 
    "transparency": "0.8"
}, 
"3941": {
    "colours": {
        "r": -57.833, 
        "g": -34.219, 
        "b": -35.139, 
        "y": -59.258
    }, 
    "texture": "smooth", 
    "transparency": "0.2"
}, 
"2932": {
    "colours": {
        "r": -45.863, 
        "g": -23.125, 
        "b": -24.317, 
        "y": -47.357
    }, 
    "texture": "rough", 
    "transparency": "0.1"
},

我想用Python来打印 1102 3941 2932 没有信息可以遵循

我尝试过任何方法,但我似乎无法隔离第一部分。任何帮助表示赞赏。

4 个答案:

答案 0 :(得分:1)

使用json module将json加载到Python字典中并获取.keys()

import json

data = "your json data"

d = json.loads(data)
print(d.keys())

请注意,在Python 3中,.keys() view ,以获取列表:

print(list(d.keys()))

答案 1 :(得分:0)

data = json.loads(json_string)
for k,v in data:
    print(k,v)

答案 2 :(得分:0)

您可以加载json,将其转换为字典:

import json    
data = json.loads(json_string)

然后您可以轻松打印它们的键:

print ' '.join([key for key in data.iterkeys()])

完成后,您将打印所有分隔的密钥空间,使用pythonic列表理解来创建从您的json字符串创建的字典。

答案 3 :(得分:0)

如果将JSON分配给变量...

myJson = {
"1102": {
    "colours": {
        "r": -70.353, 
        "g": -33.151, 
        "b": -33.824, 
        "y": -71.043
    }, 
    "texture": "grainy", 
    "transparency": "0.8"
}, 
"3941": {
    "colours": {
        "r": -57.833, 
        "g": -34.219, 
        "b": -35.139, 
        "y": -59.258
    }, 
    "texture": "smooth", 
    "transparency": "0.2", 
    "country": "Argentina"
}, 
"2932": {
    "colours": {
        "r": -45.863, 
        "g": -23.125, 
        "b": -24.317, 
        "y": -47.357
    }, 
    "texture": "rough", 
    "transparency": "0.1"}
}

Python会将其视为字典!你可以print(myJson),它将返回:

{'3941': {'country': 'Argentina', 'transparency': '0.2', 'colours': {'g': -34.219, 'y': -59.258, 'b': -35.139, 'r': -57.833}, 'texture': 'smooth'}, '2932': {'transparency': '0.1', 'colours': {'g': -23.125, 'y': -47.357, 'b': -24.317, 'r': -45.863}, 'texture': 'rough'}, '1102': {'transparency': '0.8', 'colours': {'g': -33.151, 'y': -71.043, 'b': -33.824, 'r': -70.353}, 'texture': 'grainy'}}

如果您需要特定数据,可以使用print(myJson['1102']),它将返回:

{'transparency': '0.8', 'colours': {'g': -33.151, 'y': -71.043, 'b': -33.824, 'r': -70.353}, 'texture': 'grainy'}