python dict转成驼峰的key
时间: 2025-02-22 15:25:54 浏览: 45
在 Python 中,如果你有一个字典 `dict` 并且想要将其所有键从蛇形命名法 (snake_case) 或其他风格转换为驼峰命名法 (camelCase),你可以编写一个辅助函数来完成这个任务。下面是一个简单的示例:
### 实现方案
我们创建名为 `convert_to_camelcase_keys` 的函数用于递归地遍历整个字典及其嵌套元素,并应用特定规则将每个非叶子节点名称由小写字母加下划线的形式改为首字母大写的单词相连。
```python
def convert_snake_to_camel(snake_str):
components = snake_str.split('_')
# 将第一个词保持不变,后续各词汇首字母大写
return components[0] + ''.join(x.title() or '_' for x in components[1:])
def convert_dict_keys_to_camel(d):
"""
Recursively converts all keys of the input dictionary to camel case.
Args:
d(dict): Input dictionary with potential nested structures.
Returns:
dict: New dictionary where each key has been converted into Camel Case format.
"""
if isinstance(d, list):
return [convert_dict_keys_to_camel(item) for item in d]
elif isinstance(d, dict):
new_dict = {}
for k, v in d.items():
new_key = convert_snake_to_camel(k.lower()) # 统一先转为小写再处理
new_value = convert_dict_keys_to_camel(v)
new_dict[new_key] = new_value
return new_dict
else:
return d
# 测试用例
data = {
"first_name": "John",
"last_name": "Doe",
"address_info": {"street_address_1": "Main St", "city_town": "Springfield"}
}
result = convert_dict_keys_to_camel(data)
print(result)
```
运行上述代码会输出:
```plaintext
{'firstName': 'John', 'lastName': 'Doe', 'addressInfo': {'streetAddress1': 'Main St', 'cityTown': 'Springfield'}}
```
这里的关键在于实现了两个功能:
- **字符串格式转换** - 使用了 `split()` 和列表推导式配合 `.title()` 方法有效地对包含 `_` 分隔符的字符串进行了重组。
- **深度优先搜索算法的应用** - 当遇到复杂的数据结构如字典内的列表或内含更多层级的子字典时能够逐层深入直至最底层。
---
此外还有一点需要注意的是,在实际项目里可能会碰到一些特殊情况需要特殊对待,例如某些字段不应该改变其原始形态、或者存在大小混合等情况,则可以根据需求调整此工具函数的行为逻辑。
--
--
阅读全文
相关推荐



















