Python: 把json字符串中,驼峰式命名的变量名,转换成数据库字段命名的常用方式大写

背景

要求调用外部提供的接口,接收一堆json字符串,再按照这个字符串,创建数据表,再解析这个json字符串,创建javabean,写insert sql,把数据一条条插入数据表中。

由于字段名多达几十个,所以决定用python来解析字符串,直接输出一些重复性代码

1.数据库字段

json字符串:

转换后的数据库字段名(喜欢小写的可以全部转成小写):

代码

# json字符串转换数据库里的字母大写+下划线命名
def readTxt():
    file = 'resource/JsonString.txt'
    # w模式表示:如果没有这个文件,创造一个文件。每次运行都覆盖之前的内容。
    # 如果想要追加,而不是覆盖,请使用a+模式。
    wirteFile = open('resource/jsonName.txt','w',encoding='utf-8')
    with open(file, 'r',encoding='utf-8') as f:
        # 读取到每一行的内容
        data = f.readlines()
        count = 0;
        for eachLine in data :
            wirteFile.write("-----------------分割线------------\n")
            str_ = eachLine
            # 去掉首尾的{}
            str_ = str_[1:len(str_)-1]
            if count < len(data):
                # 只要不是最后一行 都会有个换行符 所以在去掉一个字符
                str_ = str_[0:len(str_) - 1]
            count = count +1
            strArray = str_.split(",")
            for eachkeyvalue in strArray:
                keyStr = eachkeyvalue.split(":")[0]
                valueStr = eachkeyvalue.split(":")[1]
                key = keyStr.replace('"',"")
                value = valueStr.replace('"', "")
                newKey = ""
                num = 0
                for i in key:
                    # 首字母转大写
                    if num == 0:
                        newKey = i.upper()
                    elif num>0:
                        # 遇到大写 加个下划线
                         if i.isupper():
                             newKey = newKey+"_"+i
                        # 顺便把其他的英文字符也大写
                         elif i.islower():
                             newKey = newKey + i.upper()
                        # 数字、特殊字符使用原装
                         else:
                             newKey = newKey+i
                    num = num+1
                wirteFile.write(newKey+":"+value+"\n")
readTxt()

也可以拼接字符串直接写建表的sql

表建好了,其他的java bean啊sql可以用mybatis 逆向工程自动生成哦,也可以再写个python程序处理。

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...