2017-01-25 15 views
0

MS SQL Serverテーブルのxml列をpandasデータフレームに解析する必要があります。SQL Serverのxml列をPythonのpandasに変換する

私はいくつかの方法をそこに得ることができます。

私は、SQL Serverへの接続オブジェクトを作成することができます

import pyodbc 
from lxml import etree 

conn_str = (
r'Driver={SQL Server};' 
r'Server=.\SQLEXPRESS;' 
r'Database=myDB;' 
r'Trusted_Connection=yes;' 
) 
cnxn = pyodbc.connect(conn_str) 

私は今(?カーソルから)行オブジェクトを反復処理し、一度にそれぞれの行1を解析しに追加するlxmlのを使用したいですパンダのデータフレーム 行を反復処理するための解析ができません。これは間違ったアプローチですか?

tree = etree.parse(row) 

は機能しません。

それから私は私が

root = tree.getroot() 


# Parse out data from XML 
data = [] 
for child in root: 
    datarow = {} 
    for leaf in child: 
     datarow[leaf.tag] = leaf.text 
    data.append(datarow) 

以下に似た構文解析された要素の辞書を構築し、最終的にはパンダのデータフレームに辞書を変換する必要があると思います。 私はxml構造を事前に知る必要はありません。 これは私の考えですが、より良い方法があれば教えてください。 本当にありがとうございます。

答えて

0

read_sqlはあなたのために働くでしょうか? http://pandas.pydata.org/pandas-docs/version/0.19.2/generated/pandas.read_sql.html

試してみてください。

df = pd.read_sql(yoursqlstring, cnxn) 
+0

おかげで - 私は今、パンダの列SQL ServerからXML列を持つ1つの列のデータフレームを与えるために動作します。しかし、どのようにlxmlを解析するのですか? –

+0

現在の1列のデータフレームがどのようなものか、どのような出力を受け取ることができるかの例を提示できますか? – jvk777

関連する問題