2016-08-30 12 views
0

私は文字列を解析して辞書に変換しました。しかし、私は辞書からより多くの情報を得ることができたいと思っています。私は息子のファイルやyamlファイルを作成する方がより有用と思っていました。 この問題を解決する別の方法についてご意見をお寄せください。jsonまたはyamlに変換するPython辞書

import re 
regex = '(\w+) \[(.*?)\] "(.*?)" (\d+) "(.*?)" "(.*?)"' 
sample2= 'this [condo] "number is" 28 "owned by" "james"' 
patern = '(?P<host>\S+)\s(?P<tipe>\[\w+\])\s(?P<txt>"(.*?))\s(?P<number>\d+)\s(?P<txt1>"\w+\s\w+")\s(?P<owner>"\w+)' 
m =re.match(patern, sample2) 
res = m.groupdict() 
print res 

と私はなるだろう:

{'tipe': '[condo]', 'number': '28', 'host': 'this', 'owner': '"james', 'txt': '"number is"', 'txt1': '"owned by"'} 

私は所有者名でソートし、家のタイプや家の番号を書き出すことができるようにしたいと思います。例えば:

ジェームス:{タイプ:コンドミニアム、数:28}

または任意の他の提案?

答えて

0

json対yamlの質問は、保存しているデータで何をしているのですか? JSまたは別のPythonスクリプトでデータを再利用する場合は、JSONを使用できます。あなたがYAMLを使用するものでそれを使用していたなら、YAMLを使用してください。しかし、あなたの質問の点では、特定のエンドゲームやデータのユースケースがない限り、形式に関係なく、典型的なTSV/CSVを実行するだけで、それは同じになります。

jsonにdictを作成する方法についての質問にお答えします。

あなたの例では、res辞書が作成されています。ジェームズ::{タイプ:コンドミニアム、数:28}

import json 
with open('someFile.json', 'wb') as outfile: 
    json.dump(res, outfile) 

あなたの出力ファイルsomeFile.jsonは、私は後で考えての私はより多くの名前と番号Iは、例えば、言うことができる方法を持っているでしょうres

+0

あなたの辞書になりますdavid:{type:mansion、number:10}それを私が挙げることができるように。最終目標は、Apacheログファイルを解析し、IPアドレスに基づいて、送信されたリクエストのステータスをチェックすることです。 –

+0

もう一度使用するまでは、フォーマットはデータを伝達する単なる方法なので、どのフォーマットであるかは関係ありません。あなたがmongoのようなデータベースでそのデータを使用していると言うなら、JSONは理想的ですが、今はDBの処理をしていないので、どのフォーマットが最良かを尋ねるのは無意味です。 –

+0

これを上記の形式のjsonに変換するにはどうすればよいですか?それは主な質問です。 –

関連する問題