Metadata-Version: 2.1
Name: camel-and-snake
Version: 0.1.2
Summary: camelCase to snake_case or snake_case to camelCase for Python dict object
Home-page: https://github.com/Cphayim/camel-and-snake
Author: Cphayim
Author-email: admin@cphayim.me
Maintainer: 
Maintainer-email: 
License: MIT License
Platform: all
Classifier: Development Status :: 4 - Beta
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: Implementation
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Software Development :: Libraries
Description-Content-Type: text/markdown

# 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)


