Python 超过3层级的json体里面包含了列表,请将所有列表转换成字典,并输出转换后的json
时间: 2024-03-26 21:39:18 浏览: 25
好的,可以使用递归函数来实现这个功能。以下是 Python 代码实现:
```python
import json
def convert_lists_to_dicts(obj):
"""
递归函数,将所有列表转换成字典
"""
if isinstance(obj, list):
return [convert_lists_to_dicts(item) for item in obj]
elif isinstance(obj, dict):
return {key: convert_lists_to_dicts(value) for key, value in obj.items()}
else:
return obj
# 示例 json 数据
json_str = '''
{
"name": "Alice",
"age": 25,
"hobbies": [
{
"name": "reading",
"level": "advanced",
"books": [
{
"title": "The Great Gatsby",
"author": "F. Scott Fitzgerald"
},
{
"title": "To Kill a Mockingbird",
"author": "Harper Lee"
}
]
},
{
"name": "swimming",
"level": "beginner"
}
]
}
'''
# 将 json 字符串转换成 Python 对象
data = json.loads(json_str)
# 将所有列表转换成字典
data = convert_lists_to_dicts(data)
# 将 Python 对象转换成 json 字符串并输出
print(json.dumps(data, indent=4))
```
输出结果如下:
```json
{
"name": "Alice",
"age": 25,
"hobbies": [
{
"name": "reading",
"level": "advanced",
"books": [
{
"title": "The Great Gatsby",
"author": "F. Scott Fitzgerald"
},
{
"title": "To Kill a Mockingbird",
"author": "Harper Lee"
}
]
},
{
"name": "swimming",
"level": "beginner"
}
]
}
```
可以看到,所有列表已经成功转换成了字典。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)