我定义了这样一个数组,里面有两个字符串connList=["db1","db2"]接着一个循环fordbnameinconnListprintdbname//这里没事stra="connect"+dbname//这里就出问题了....报的错是:TypeErr...
我定义了这样一个数组,里面有两个字符串
connList = ["db1", "db2"]
接着一个循环
for dbname in connList
print dbname // 这里没事
stra = "connect " + dbname // 这里就出问题了
....
报的错是:
TypeError: cannot concatenate 'unicode' and 'list' objects
是不是应该要把dbname转成字符串?可是它应该就是字符串啊……?应该怎么转才对?
ETA2:呃,多谢回答,试了str(dbname)但是问题还是存在……
TypeError: cannot concatenate 'str' and 'list' objects
好吧,其实那个connList里的东西是通过一系列函数从系统中把db的名字读出来的,我print出来看它只是一个字符串,就一直把它当字符串了,现在看来有可能并不是的……
于是问题又回来了,怎么把一个list转成字符串?
ETA3: 刚刚仔细读了一下代码,connList这个数组里的是从一个Java类中返回的String。这种String跟python的字符串是有什么不同么?它们之间需要怎么转换么?
ETA4: 我也觉得很没理由哪。。。。。源码挺长的,重点部分如下
Java文件里:
Map nameMap = new HashMap();
//某个循环里:
nameMap.put( "dbs" + i + "_name", System.getenv("DBS" + i + "_NAME"));
nameMap.put(System.getenv("DBS" + i + "_NAME"), "dbs" + i + "_name");
Python文件里:
dbname1 = nameMap.get("dbs1_name")
dbname2 = nameMap.get("dbs2_name")
connList = [dbname1, dbname2]
//接着就是for循环了
刚刚又试了看看dbname的类型
print type(dbname)
结果是
哪里有list啊???这
展开