如何在python中将api响应的一部分转换为完整的json

nuprap

我设法将数据从系统中取出,但是其中一个字段作为一串用竖线分隔的数据返回,而不是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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在 Python Pandas 中将列的一部分转换为日期?

如何在C#中将字符串的一部分转换为小写

如何获取JSON响应的一部分并将其转换为某些接口的数组?

如何在Golang中将jsonb编码为http响应的一部分

在 Python 中将 2D 列表的一部分转换为 int

如何在 C# 中解析不完整的 JSON 的一部分

如何在python中将数组的一部分存储在不同的数组中

如何在python中将字符串用作变量的一部分

如何在JSON中转换字符串的一部分?

在turbo c ++中将字符串的一部分转换为整数

如何在python中分离json的一部分?

如何在Logstash中将json拆分为多个事件,其中事件是哈希的一部分(唯一)

如何在Paw中将文件作为多部分请求的一部分上载?

如何在余烬应用程序中将api密钥作为url的一部分传递

使用Jackson ObjectMapper将Json的一部分转换为HashMap

将嵌套的 Json 对象的一部分转换为 Java Map

作为AJAX成功函数的一部分,从API调用发送PHP的JSON响应

如何将行转换为列但仅适用于python中表的一部分?

如何将列表的一部分转换为python中的嵌套列表?只使用内置函数

如何在Python中将变量值用作变量名的一部分?

如何在Flask中返回图像作为GET请求响应的一部分?

作为函数的一部分,如何将小数转换为等效时间?

如何将Java源文件的一部分转换为Kotlin?

如何将Redux存储的一部分转换为数组

如何将字符串的一部分转换为整数?

如何仅将字符串列表的一部分转换为整数

如何将字符串的一部分转换为斜体?

如何在iPhone开发中将度数符号添加为UILabel的一部分?

如何在iOS中将字符串的一部分加粗?