欢迎访问宙启技术站
智能推送

JSONType()函数实现Python中JSON数据的类型转换

发布时间:2023-12-26 17:00:51

JSONType()函数是一个自定义函数,用于将Python中的数据转换为JSON数据类型。该函数接受一个参数,代表要转换的数据。根据不同的数据类型,函数会返回对应的JSON类型。

以下是JSONType()函数的实现代码:

def JSONType(data):
    if data is None:
        return "null"
    elif isinstance(data, bool):
        return "true" if data else "false"
    elif isinstance(data, (int, float)):
        return str(data)
    elif isinstance(data, str):
        return '"' + data + '"'
    elif isinstance(data, list):
        res = "["
        for item in data:
            res += JSONType(item) + ","
        res = res.rstrip(",") + "]"
        return res
    elif isinstance(data, dict):
        res = "{"
        for key, value in data.items():
            res += '"' + str(key) + '":' + JSONType(value) + ","
        res = res.rstrip(",") + "}"
        return res
    else:
        return None

该函数首先判断数据的类型,并根据不同的类型执行相应的操作。如果数据为None,则返回字符串"null";如果数据为布尔值,则返回"true"或"false";如果数据为数字,则将其转换为字符串返回;如果数据为字符串,则将其用双引号包裹返回。

如果数据为列表,则遍历列表中的每一个元素,调用JSONType()函数进行递归处理,然后将结果拼接到一个以逗号分隔的字符串中,最后在字符串的两侧加上方括号,返回一个JSON数组形式的字符串。

如果数据为字典,则遍历字典中的每一对键值对,将键用双引号包裹,然后将值调用JSONType()函数进行递归处理,再将结果拼接到一个以逗号分隔的字符串中,最后在字符串的两侧加上大括号,返回一个JSON对象形式的字符串。

下面是一个使用JSONType()函数的例子:

data = {
    "name": "Alice",
    "age": 25,
    "is_student": True,
    "grades": [90, 85, 95],
    "address": {
        "street": "123 Main St",
        "city": "New York",
        "state": "NY"
    }
}

json_data = JSONType(data)
print(json_data)

运行上述代码,将会输出以下结果:

{"name":"Alice","age":25,"is_student":true,"grades":[90,85,95],"address":{"street":"123 Main St","city":"New York","state":"NY"}}

可以看到,JSONType()函数成功地将Python数据转换为了JSON字符串形式。