-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 2012-04-04 15:36:48
我还没有得到MySQL方便。如果'fetchall'返回的每行都不是一个值序列,那么你需要把这行变成一系列值。另外,您可能需要充实E helper类以将非字符串内容值呈现为字符串 – MattH 2012-04-04 15:39:46
我已将修改助手以unicode传递的内容参数。例如,您可能想根据模式将布尔值表示为小写字母,以便您可以更改帮助程序以将布尔值呈现为小写字母。 – MattH 2012-04-04 15:46:07