遍历递归对象,把对象每一个属性值包含enc=1的属性值赋予新值
时间: 2023-06-25 21:05:25 浏览: 58
可以使用递归函数来遍历对象的每个属性,然后判断属性值是否包含enc=1,如果包含则赋予新值。下面是一个示例代码:
```python
def update_enc_props(obj):
if isinstance(obj, dict):
for key in obj.keys():
if isinstance(obj[key], dict) or isinstance(obj[key], list):
update_enc_props(obj[key])
elif isinstance(obj[key], str) and "enc=1" in obj[key]:
obj[key] = "new value"
elif isinstance(obj, list):
for item in obj:
if isinstance(item, dict) or isinstance(item, list):
update_enc_props(item)
elif isinstance(item, str) and "enc=1" in item:
item = "new value"
```
使用示例:
```python
data = {
"name": "Alice",
"age": 30,
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zip": "12345enc=1"
},
"phone": [
"555-1234",
"555-5678enc=1"
]
}
update_enc_props(data)
print(data)
```
输出结果:
```
{
"name": "Alice",
"age": 30,
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zip": "new value"
},
"phone": [
"555-1234",
"new value"
]
}
```
可以看到,对象中包含enc=1的属性值都被赋予了新值。需要注意的是,如果对象中包含嵌套对象或列表,需要递归遍历每个属性。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)