Я хотел бы проанализировать XML-документ с помощью Python и создать из него базу данных (используя sqlite3).
xml.tag создаст строки, xml.text будет данными в строке.
XML (часть):
<intrants>
<PPPs>
<PPP>
<titulaire ref-type="firme-titulaire" ref id="20110427000619000001">DUPONT SOLUTIONS (FRANCE) S.A.S.</titulaire>
<type-produit>PPP</type-produit>
<etat-produit>AUTORISE</etat-produit>
<numero-AMM>9600509</numero-AMM>
код:
import xml.etree.ElementTree as ET
import sqlite3
conn = sqlite3.connect("PPPsdb.sqlite")
cur = conn.cursor()
cur.executescript('''
CREATE TABLE IF NOT EXISTS PPP (
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE);
''')
fname = "C:blablabla.xml"
tree = ET.parse(fname)
root = tree.getroot()
all = root.findall('intrants/PPPs/PPP/')
if one.find(".//") is None :
if one.find(".").text is not None : print one.find(".").text, len(one.find(".").text)
try :
print one.tag.replace("-", "_")
print one.text
cur.execute('''
ALTER TABLE PPP ADD COLUMN ''' + (one.tag.replace("-", "_")))
cur.execute(''' INSERT OR IGNORE INTO PPP (titulaire)
VALUES ( ? )''', (one.text,))
except :
continue
conn.commit()
Этот код не работает, но работает (без трассировки).
Я бы хотел, чтобы заполнитель присваивал значения как заголовку столбца, так и его собственным данным.
Для получения дополнительной информации, этот код должен запускаться только в том случае, если создаваемый столбец еще не существует (но это не цель этого сообщения).