python

しょっちゅう忘れることを書いておく。

33

162 views

CSVファイルをディクショナリを使って階層構造にするサンプル

#coding: UTF-8

def create_nest_map(map_data, keys, value):
    if len(keys) > 1:
        key = keys[0]
        if key not in map_data:
            map_data[key] = {}
        create_nest_map(map_data[key], keys[1:], value)
    else:
        key = keys[0]
        if key not in map_data:
            map_data[key] = [value]
        else:
            map_data[key].append(value)

if __name__ == '__main__':
    testdata = [
        ["A", "name1", "19"],
        ["A", "name2", "32"],
        ["A", "name2", "33"],
        ["A", "name3", "443"],
        ["B", "name4", "44"],
        ["B", "name5", "35"],
        ["B", "name5", "63"],
        ["C", "name4", "65"],
    ]

    map_data = {}
    for record in testdata:
        keys = record[0:-1]
        value = record[-1]
        create_nest_map(map_data, keys, value)

    print(map_data)


上のプログラムを実行すると、以下のように階層構造になったデータを取得できる。

{'A': {'name1': ['19'], 'name2': ['32', '33'], 'name3': ['443']}, 'B': {'name4': ['44'], 'name5': ['35', '63']}, 'C': {'name4': ['65']}}

Page 35 of 56.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

マッスル

自己紹介

本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626