-1
PythonとLXMLを使用して、Mysqlクエリ結果からXMLファイルを作成しようとしています。ここに私が望む形式があります。PythonとlxmlでMySQLクエリからxmlを作成
<DATA>
<ROW>
<FIELD1>content</FIELD1>
<FIELD2>content</FIELD2>
</ROW>
</DATA>
何らかの理由で、コードが正しくフォーマットされていないため、XMLが検証されません。そのコードは
from lxml import etree
from lxml.etree import tostring
from lxml.builder import E
import MySQLdb
try:
conn = MySQLdb.connect(host = 'host',user = 'user',passwd = 'pass',db = 'db')
cursor = conn.cursor()
except:
sys.exit(1)
cursor.execute("SELECT * FROM db.table")
columns = [i[0] for i in cursor.description]
allRows = cursor.fetchall()
xmlFile = open("mysqlxml.xml","w")
xmlFile.write('<DATA>')
for rows in allRows:
xmlFile.write('<ROW>')
columnNumber = 0
for column in columns:
data = rows[columnNumber]
if data == None:
data = ''
xmlFile.write('<%s>%s</%s>' % (column,data,column))
columnNumber += 1
xmlFile.write('</ROW>')
xmlFile.write('</DATA>')
xmlFile.close()
私は私の上に例を移植問題を抱えています。具体的には、タグにコンテンツを入れてください – user1130161
私は便利なmysqlを持っていない。 'fetchall'によって返された各行が一連の値以外であれば、その行を一連の値に変換する必要があります。また、文字列以外の文字列の値を文字列に変換するために、ヘルパークラスを作成する必要があります。 – MattH
渡されたコンテンツパラメータをUnicodeに変更しました。たとえば、ブール値をスキーマに応じて小文字で表す場合は、ブール値を小文字にするようにヘルパーを変更できます。 – MattH