python dict对象的camelcase到snake或snake到camelcase

camel-and-snake的Python项目详细描述


# camel-and-snake

## ? and ? ????

本项目旨在解决 camelCase 和 snake_case 相互转换的问题

**支持 python3 以上版本**


## 应用场景

* 生成对 JavaScript 更友好的 `camelCase` 命名规范的 JSON 响应数据
* 在 JSON 序列化之前将 `snake_case` 的字典转为 `camelCase`
* 在 JSON 反序列化之后将 `camelCase` 的字典转回 `snake_case`


## 如何使用?

### 安装

你可以通过 `pip` 来安装 `camel_and_snake`
> 推荐使用 `pipenv` 在虚拟环境下安装

```shell
$ pip3 install camel_and_snake
```


### 使用

```python
from camel_and_snake import Converter
```

**snake_case -> camelCase**

```python
dict_obj = {
'org_id': 123,
'org_name': 'ShadowCoder',
'member_list': [
{'member_id': 1, 'member_name': 'Cphayim'},
{'member_id': 2, 'member_name': 'Hoyoe'}
]
}

# 转换过程中将对深层的每一个字典进行递归替换 key 值,并返回一个新的对象
json.dumps(Converter.camelify(dict_obj), indent=2)

"""
{
"orgId": 123,
"orgName": "ShadowCoder",
"memberList": [
{
"memberId": 1,
"memberName": "Cphayim"
},
{
"memberId": 2,
"memberName": "Hoyoe"
}
]
}
"""
```


**camelCase -> snake_case**

```python
json_str = '{"orgId": 123, "orgName": "ShadowCoder", "memberList": [{"memberId": 1, "memberName": "Cphayim"}, {"memberId": 2, "memberName": "Hoyoe"}]}'

dict_obj = Converter.snakeify(json.loads(json_str))
# {'org_id': 123, 'org_name': 'ShadowCoder', 'member_list': [{'member_id': 1, 'member_name': 'Cphayim'}, {'member_id': 2, 'member_name': 'Hoyoe'}]}
```

## License

[MIT](https://opensource.org/licenses/MIT)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java类。getResource和ClassLoader。getSystemResource:有没有理由选择其中一个而不是另一个?   在Java中以编程方式粘贴后恢复剪贴板   Java字符串到日期没有时间   JavaSpring注释:@Component起作用,@Repository不起作用   java“addScript”在HSQL中是否有最大记录计数?   java如何将值从JDialog框返回到父JFrame?   java我的模块库的用户有没有办法访问尚未导出的类?   java javac:未找到命令   java如何解决jsoup错误:无法找到请求目标的有效证书路径   类中的java作用域变量   Java中集合实现中的arraylist add()方法不起作用   java如何使用while循环和从用户接收输入来近似Pi?   java Spring安全CSRF培训模式   在安卓系统中,如何通过在警报框外单击来限制用户?