我设法将数据从系统中取出,但是其中一个字段作为一串用竖线分隔的数据返回,而不是json格式。
这是我的python脚本的api调用和响应处理:
info = requests.request("GET", url, headers=headers, verify=False)
data = info.json()
return(data)
这是响应数据的净化版本。我关注的字段是“属性”字段中的数据。如何将其转换为嵌套的json数组?
[
{
"id": 00000001,
"name": "hostname1",
"type": "HostRecord",
"properties": "absoluteName=hostname1.mydomain.com|parentId=00000010|parentType=Zone|reverseRecord=false|addresses=10.10.10.11|addressIds=00000100|"
},
{
"id": 00000002,
"name": "hostname2",
"type": "HostRecord",
"properties": "absoluteName=hostname2.mydomain.com|parentId=00000020|parentType=Zone|reverseRecord=true|addresses=10.10.10.12|addressIds=00000200|"
}
像下面这样
data = [
{
"id": "00000001",
"name": "hostname1",
"type": "HostRecord",
"properties": "absoluteName=hostname1.mydomain.com|parentId=00000010|parentType=Zone|reverseRecord=false|addresses=10.10.10.11|addressIds=00000100|"
},
{
"id": "00000002",
"name": "hostname2",
"type": "HostRecord",
"properties": "absoluteName=hostname2.mydomain.com|parentId=00000020|parentType=Zone|reverseRecord=true|addresses=10.10.10.12|addressIds=00000200|"
}
]
def make_dict(properties: str) -> dict:
result = {}
pairs = properties.split('|')
for pair in pairs:
if pair:
k, v = pair.split('=')
result[k] = v
return result
for entry in data:
entry['properties'] = make_dict(entry['properties'])
print(data)
输出
[{'id': '00000001', 'name': 'hostname1', 'type': 'HostRecord', 'properties': {'absoluteName': 'hostname1.mydomain.com', 'parentId': '00000010', 'parentType': 'Zone', 'reverseRecord': 'false', 'addresses': '10.10.10.11', 'addressIds': '00000100'}}, {'id': '00000002', 'name': 'hostname2', 'type': 'HostRecord', 'properties': {'absoluteName': 'hostname2.mydomain.com', 'parentId': '00000020', 'parentType': 'Zone', 'reverseRecord': 'true', 'addresses': '10.10.10.12', 'addressIds': '00000200'}}]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句