CSVファイルから情報を読み込みました。ファイルの反復情報をマップするためにネストされた辞書を使用しています。ファイルのすべての行について、このファイルのネストされた辞書を作成するにはどうすればよいですか?データの例(ではない、実際のデータが、基本的に同じ考え方)Pythonでcsvファイルからネストされた辞書を作成する
State ,City/Region ,Questions ,Answers
NY,Manhattan ,East/West Coast? ,East
NY,Manhattan ,been there? ,yes
NY,Brooklyn ,East/West Coast? ,East
NY,Brooklyn ,been there? ,yes
NY,Brooklyn ,Been to coney island? ,yes
NY,Queens ,East/West Coast? ,East
NY,Queens ,been there? ,yes
NY ,Staten Island ,is island? ,yes
MA,Boston ,East/West Coast? ,East
MA,Boston ,like it there? ,yes
MA,Pioneer Valley ,East/West Coast? ,East
MA,Pioneer Valley ,city? ,no
MA,Pioneer Valley ,college town? ,yes
CA,Bay Area ,warm? ,yes
CA ,Bay Area ,East/West Coast? ,West
CA ,SoCal ,north or south? ,south
CA ,SoCal ,warm ,yes
だから、本質的に、マスター辞書には3つのキーを持っている:NY、MA、CA、それらのそれぞれは、キーとして市/地域との辞書を持っています、各都市/地域には質問と回答があります。
だから、それは非常にネストされた辞書のだろうが、私は、ファイル内のすべての行のためにそれを行うには、このための構文を把握することはできません。
ファイルを開こうとしましたが、forループを使って行を読み込み、 "、"で行を分割しました。このような何か:
for line in my_file:
line=line.split(",")
MasterDict[line[0]] = {line[1] : {} }
MasterDict[line[0]][line[1]] = {line[2] : line[3]}
あなたがこれまでに試してみました何を?コードがうまくいかないのはどうですか? –
itertoolsからgroupby関数を見てみましょうhttps://docs.python.org/2/library/itertools.html#itertools.groupby –
私はファイルをオープンしようとしましたが、forループを使用して行を読み込み、分割しました行は "、"で区切られています。このようなもの for my_file: line = line.split( "、") MasterDict [line] [1]:{}} MasterDict [line [0]] [line [ 1]] = {line [2]:line [3]} – question610