使用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字典的值一样。
