Py学习  »  Python

python解析奇怪的JSON数据

GI D • 3 年前 • 1269 次点击  

我应该如何解析(使用Python3)这种“不寻常”格式的数据? 正如您在“variables”字典中看到的,大写的数据没有标签,而是以文字形式提供的。因此,当我循环遍历“变量”中的条目时,我得到的只是大写的字符串,其他什么都没有。显然,我需要得到资本加上里面的价值。

    {
    "variables": {
    "ABSENCE_OSL_PROD": {
      "value": "REZWWnBTejN5Ng=="
    },
    "ACTION_OSL_INT": {
      "value": "S0RXSVNTbmFhNw=="
    },
    "ACTION_OSL_PROD": {
      "value": "RUJCaDJGnmFnUg=="
    },
    "API_STORE_OSL_INT": {
      "value": "U3lxaVhogWtIcg=="
    }
  },
  "id": 4,
  "type": "Vsts"
}
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133096
 
1269 次点击  
文章 [ 2 ]  |  最新文章 3 年前
Floh
Reply   •   1 楼
Floh    3 年前

通过dict理解,你可以获得一种高效的方式:

ugly = {
    "variables": {
    "ABSENCE_OSL_PROD": {
      "value": "REZWWnBTejN5Ng=="
    },
    "ACTION_OSL_INT": {
      "value": "S0RXSVNTbmFhNw=="
    },
    "ACTION_OSL_PROD": {
      "value": "RUJCaDJGnmFnUg=="
    },
    "API_STORE_OSL_INT": {
      "value": "U3lxaVhogWtIcg=="
    }
  },
  "id": 4,
  "type": "Vsts"
}

proper = {elt: ugly["variables"][elt]["value"] for elt in ugly["variables"]}

print(proper)

返回

{'ABSENCE_OSL_PROD': 'REZWWnBTejN5Ng==', 'ACTION_OSL_INT': 'S0RXSVNTbmFhNw==', 'ACTION_OSL_PROD': 'RUJCaDJGnmFnUg==', 'API_STORE_OSL_INT': 'U3lxaVhogWtIcg=='}```
Learning is a mess
Reply   •   2 楼
Learning is a mess    3 年前

要在局部变量空间的变量中加载变量,请执行以下操作:

data =    {
    "variables": {
    "ABSENCE_OSL_PROD": {
      "value": "REZWWnBTejN5Ng=="
    },
    "ACTION_OSL_INT": {
      "value": "S0RXSVNTbmFhNw=="
    },
    "ACTION_OSL_PROD": {
      "value": "RUJCaDJGnmFnUg=="
    },
    "API_STORE_OSL_INT": {
      "value": "U3lxaVhogWtIcg=="
    }
  },
  "id": 4,
  "type": "Vsts"
}

for variable_name, variable_content in data['variables'].items():
    locals()[variable_name] = variable_content['value']

print(ABSENCE_OSL_PROD)
# prints "REZWWnBTejN5Ng=="