我收到此错误:
TyperError: sequence item 2: expected string, long found
以下是my code:
import MySQLdb
connection = MySQLdb.connect (host = "localhost", user = "root", passwd = "*****", db = "test")
cursor = connection.cursor ()
cursor.execute ("SELECT * FROM names")
data = cursor.fetchall ()
no = []
no += ["<users>\n"]
for row in data :
no += [" <user id='", row[0], "' name='", row[1], "' blend='", row[2], "'/>\n"]
no += [" <nick color='0x", row[3], "' font='", row[4], "'/>\n"]
no += [" <glow color='0x", row[5], "' alpha='", row[6], "' blurX='", row[7], "' blurY='", row[8], "' strength='", row[9], "' quality='", row[10], "'/>\n"]
no += [" </user>\n", row[11]]
cursor.close ()
connection.close ()
no += ["</users>"]
s = ''.join(no)
file = open('test.xml','w')
file.write(s)
答案 0 :(得分:1)
不是按照你的方式将字符串连接到子列表,而是可以执行以下操作
# Don't do this
no += [" <user id='", row[0], "' name='", row[1], "' blend='", row[2], "'/>\n"]
# Do this instead
no += [" <user id='%s' name='%s' blend='%s'/>\n" % (row[0], row[1], row[2])]
答案 1 :(得分:1)
您必须先使用str()
将检索到的数据转换为字符串,以便在row[INDEX]
所说的任何地方,您必须说:str(row[INDEX])
。例如str(row[3])
。