2017-12-29 51 views
0

実際にはXMLではないが、タグのリストにすぎない文字列があります。階層的なものはありません。私はちょうどキーと値のペアのdictを出したいです。Pythonでタグの文字列をdictに変換する

文字列には、tag nameで始まり、valueで終わるタグがあります。それは次のようになります。

d = {'image_num' : 1, 'image_pixel_depth':6} 

typeまたは何のため不要)

これはにかなりまともな痛みのようになります。

str = '<tag name="image_num_t" value="1"/><tag name="image_pixel_depth" type='A' value="6"/>' 

私はこのような辞書を作成したいのですがコードを一から作成し、不要と感じます。私は適切なXMLに変換して成熟した大人のように解析することができるかもしれないと思っていますが、何も動作しません(lxlmなどのような)さまざまなパッケージを見ました。

誰もが、Python 2.7を使ってdictにタグの文字列を変換する最良の方法について私にアドバイスできますか?ありがとう。

答えて

1

XMLで修飾される文字列に欠落している唯一のものが、問題に示されているようにルート要素である場合、修正は一時的なルート要素を追加するだけの簡単さでなければなりません。この時点から、あなたは情報を抽出し、辞書にそれを格納するために、任意のXMLパーサーを使用することができます。

from xml.etree import ElementTree as ET 

str = '''<tag name="image_num_t" value="1"/><tag name="image_pixel_depth" type='A' value="6"/>''' 
source = '<root>' + str + '</root>' 

root = ET.fromstring(source) 
d = {t.attrib['name']: int(t.attrib['value']) for t in root.findall('tag')} 

テスト:https://eval.in/928392

+0

おかげで...私は週末の後の深さでこれをチェックしてくださいます。とても有難い –

関連する問題