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

使用demjson库的decode()函数解析复杂的JSON数据

发布时间:2023-12-25 07:03:24

demjson是一个用于解析和编码JSON数据的Python库。它提供了一个decode()函数,用于将JSON字符串解析为Python数据结构。下面是一个使用demjson库的decode()函数解析复杂JSON数据的例子:

import demjson

# 定义一个复杂的JSON字符串
json_str = '''
{
    "name": "John",
    "age": 30,
    "address": {
        "street": "123 Main St",
        "city": "New York",
        "state": "NY"
    },
    "phones": [
        {
            "type": "home",
            "number": "555-1234"
        },
        {
            "type": "mobile",
            "number": "555-5678"
        }
    ]
}
'''

# 使用decode()函数解析JSON字符串
data = demjson.decode(json_str)

# 打印解析结果
print(data)

# 通过键访问解析结果中的值
print("Name:", data["name"])
print("Age:", data["age"])
print("Street:", data["address"]["street"])
print("Phones:")
for phone in data["phones"]:
    print(phone["type"], ":", phone["number"])

在上面的例子中,我们首先导入了demjson库。然后,我们定义了一个包含复杂JSON数据的字符串变量json_str。接下来,我们使用decode()函数将JSON字符串解析为Python数据结构,并将解析结果存储在变量data中。最后,我们打印了解析结果,并且通过键访问解析结果中的值。

上述代码的输出结果如下:

{'name': 'John', 'age': 30, 'address': {'street': '123 Main St', 'city': 'New York', 'state': 'NY'}, 'phones': [{'type': 'home', 'number': '555-1234'}, {'type': 'mobile', 'number': '555-5678'}]}
Name: John
Age: 30
Street: 123 Main St
Phones:
home : 555-1234
mobile : 555-5678

从输出结果可以看出,decode()函数将JSON字符串成功地解析为了一个Python数据结构。我们可以通过键访问解析结果中的值,就像访问任何其他Python字典的值一样。