2016-03-31 10 views
-2

ファイル内の行から抽出する最も良い方法は何ですか(例:行は-user <username> -id <userid> -sub <subname>)。しかし、長さの行は、-user、-id、-subのような余分な属性によって異なる場合があります。Pythonの行から抽出する最も良い方法は何ですか

出力は次のようになります - 私はこのためJSONを使用していない

{ 
"user" : username 
"id" : userid 
"sub" : subname 
} 
+0

何のために最善の方法をハードコードしていますか?いくつかの文字列分割でこれを行うことができます –

+0

@SergioTulentsevはい私は文字列分割でそれを行うことができました。属性は1行で異なる場合があります。あなたは文字列分割が正規表現よりも速いと思いますか? –

+0

私は分かりません。測定する必要があります。また、コードのメンテナンス性は、ほとんどの場合、生の性能よりも重要です。非自明な正規表現は、文字列の分割よりも把握が難しい。 –

答えて

1

。私は引用符とコロン

import re 
arr = re.findall("-(.*?)<(.*?)>", "-user <username> -id <userid> -sub <subname>") 

for x in arr: 
    print "\"" + x[0].strip() + "\" : ", x[1].strip() 

Ideone Demo

0
>>>import re 
>>> print("{\n"+re.sub(r'-(\w+)\s*([^-]+)\s*', r'"\1": "\2",\n', "-user <username> -id <userid> -sub <subname>").strip('[\n,]')+"\n}") 
{ 
"user": "<username> ", 
"id": "<userid> ", 
"sub": "<subname>" 
} 
>>> 
関連する問題