使用PyQt5写python代码读取字典中的key以及key里面嵌套的key,将其设置为子节点和下一子节点
时间: 2024-04-29 11:26:02 浏览: 127
您好!针对您的问题,可以先使用Python内置的json模块来读取字典。具体实现可以参考以下代码:
```python
import json
# 假设我们有以下字典
my_dict = {
"name": "张三",
"age": 20,
"address": {
"province": "广东",
"city": "深圳",
"detail": {
"street": "xxx街道",
"number": "xxx号"
}
}
}
# 将字典转化为json字符串
json_str = json.dumps(my_dict)
# 解析json字符串
json_obj = json.loads(json_str)
# 通过递归遍历字典的所有键值对
def walk_dict(data, parent=None):
for key, value in data.items():
node = QStandardItem(key)
if parent:
parent.appendRow(node)
if isinstance(value, dict):
walk_dict(value, node)
else:
node.appendRow(QStandardItem(str(value)))
# 创建根节点
root_node = QStandardItem("root")
# 递归遍历字典并添加节点
walk_dict(json_obj, root_node)
# 最后将根节点设置给QTreeView
tree_view.setModel(QStandardItemModel([root_node]))
```
以上代码使用了递归方式遍历字典,将遍历到的每个键值对作为一个节点添加到QTreeView中。如果值是一个字典,则递归调用walk_dict函数进行遍历。最后将根节点设置给QTreeView即可。
阅读全文