【问题标题】:Converting snake_case to lowerCamelCase将蛇形大小写转换为 lowerCamelCase
【发布时间】:2021-02-10 12:59:07
【问题描述】:

我定义了一个数据类,其中所有变量都在snake_case 中。而当我返回我的对象​​时,我想返回 lowerCamerCase 中的所有内容。但问题是嵌套非常深。有什么办法可以自动化这个。

虽然我已经在 camelCase 中定义了上层响应对象,但我能为别人做些什么。

#My json looks like
{
"highLevelObj1" : {
                      "low_level_obj1" : 1,
                      "low_level_obj2" : 2
                  },
"someRandomText" : {
                      "some_random_info1" : 1,
                      "some_random_info2" : 2
                  }
}

我的预期输出是

{
"highLevelObj1" : {
                      "lowLevelObj1" : 1,
                      "lowLevelObj2" : 2
                  },
"someRandomText" : {
                      "someRandomInfo1" : 1,
                      "someRandomInfo2" : 2
                  }
}

【问题讨论】:

    标签: python json string dictionary


    【解决方案1】:

    我们可以定义一个方法来将snake_case字符串转换为lowerCamelCase字符串 (source),那么我认为最简单的方法是将您的 json 转换为字符串,将其转换为 camelCase,然后将其转换回字典

    import json
    
    def to_camel_case(snake_str):
        components = snake_str.split('_')
        return components[0] + ''.join(x.title() for x in components[1:])
    
    my_dict = {
    "highLevelObj1" : {
                          "low_level_obj1" : 1,
                          "low_level_obj2" : 2
                      },
    "someRandomText" : {
                          "some_random_info1" : 1,
                          "some_random_info2" : 2
                      }
    }
    string_dict = json.dumps(my_dict)
    string_dict_camel_case = to_camel_case(string_dict)
    my_dict = json.loads(string_dict_camel_case)
    

    输出:

    {'highLevelObj1': {'lowLevelObj1': 1, 'LowLevelObj2': 2},
     'Somerandomtext': {'SomeRandomInfo1': 1, 'SomeRandomInfo2': 2}}
    

    【讨论】:

    • 但是如果 dict 中的值是驼峰式的。它也可能会影响它..对吗?
    • 它将snake_case中的任何字符串转换为camelCase
    • 另外,如果我有密钥说key,那么它会抛出一个错误
    猜你喜欢
    • 2018-10-17
    • 1970-01-01
    • 2016-08-07
    • 2016-02-24
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 2014-10-30
    相关资源
    最近更新 更多