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程序处理。
标签:newKey,Python,大写,字符串,json,num,str,命名 来源: https://www.cnblogs.com/northwest332/p/15823643.html