0

次のエラーが表示されます。

TyperError: sequence item 2: expected string, long found

これが私のコードです:

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)
4

2 に答える 2

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])]
于 2012-06-14T04:15:48.050 に答える
1

取得したデータを最初に文字列に変換する必要があります。これを使用してstr()、次のように指定row[INDEX]する必要がありますstr(row[INDEX])str(row[3])例えば。

于 2012-06-14T04:15:50.773 に答える