V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wangyongbo  ›  全部回复第 13 页 / 共 26 页
回复总数  505
1 ... 9  10  11  12  13  14  15  16  17  18 ... 26  
2018-09-09 23:06:32 +08:00
回复了 pppguest3962 创建的主题 Python 请教根据嵌套字典,完成组装 SQL 语句的问题。。。
```

StreamData = {
"D1_RSET":{
'sqltype':'int',
'data':'61207'
},
"D2_DCK_time":{
'sqltype': 'DATETIME',
'data': '2018-9-9'
},
"D3_DCK_des":{
'sqltype': 'varchar(10)',
'data': 'TestABC'
},
"D4_Exp":{
'sqltype': 'varchar(80)',
'data': ''
},
"D5_stream_seq":{
'sqltype': 'int',
'data': '123'
},
}

insertoTableSqlStr_Prefix = 'INSERT INTO {tableName} ({colNames}) value ({colValues})'
colNames = []
colValues = []

def f(sqltype="int", data=None, **kwargs):
if not data:
return None

if sqltype == "int":
return str(data) if data else 'null'

return "\"{}\"".format(data)

for col_name, col_value in StreamData.items():
data = f(**col_value)
if data is None:
continue
colValues.append(data)
colNames.append(col_name)

print colValues, colNames

print insertoTableSqlStr_Prefix.format(tableName='test', colNames=",".join(colNames), colValues=",".join(colValues))


```
2018-09-09 23:05:48 +08:00
回复了 pppguest3962 创建的主题 Python 请教根据嵌套字典,完成组装 SQL 语句的问题。。。
insertoTableSqlStr_Prefix = 'INSERT INTO {tableName} ({colNames}) value ({colValues})'
colNames = []
colValues = []

def f(sqltype="int", data=None, **kwargs):
if not data:
return None

if sqltype == "int":
return str(data) if data else 'null'

return "\"{}\"".format(data)

for col_name, col_value in StreamData.items():
data = f(**col_value)
if data is None:
continue
colValues.append(data)
colNames.append(col_name)

print colValues, colNames

print insertoTableSqlStr_Prefix.format(tableName='test', colNames=",".join(colNames), colValues=",".join(colValues))

这样写符合需要吗?

D4_Exp 是不用操作,因为它是空的. 空字符串和 null 还是不一样。 不一定它是个空字符串,就不需要处理。
@gy911201 就是不想一台电脑一直开机。
1 ... 9  10  11  12  13  14  15  16  17  18 ... 26  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2692 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 28ms · UTC 08:21 · PVG 16:21 · LAX 00:21 · JFK 03:21
Developed with CodeLauncher
♥ Do have faith in what you're doing.