我定义了一个数据类,其中所有变量都在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
}
}
可以定义一个方法将snake_case字符串转换为lowerCamelCase字符串(源),那么我认为最简单的方法是将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}}