2012-04-19 5 views
4

区切り文字列をPythonの階層JSONに変換する方法を教えてください。私はjQueryの同様の質問に対する解決策を見ました。私は同じもののためのpythonの解決策を見つけることを試みている。区切られた文字列をPythonの階層JSONに変換します。

Convert delimited string into hierarchical JSON with JQuery

目標は
以下スポーツ/テニスのように見えるかもしれないURLの束から、カテゴリの階層JSONを生成することです/
スポーツ/チェス
スポーツ/チェス/プレーヤー/男性grandslams
スポーツ/テニス
スポーツ/クリケット/競技場
スポーツ/テニス/プレーヤー

+0

ソリューションは、あなたの入力に依存します。あなたの入力は何ですか? – kev

答えて

7

あなたはdictionnariesでこれを達成できます。

initial = ["Fred-Jim","Fred","Fred-Jim-Bob", "Fred-Jim-Jack", "John", "John-Jim"] 

result = {} 

for item in initial: 
    hierarchy = item.split('-') 
    local_result = result 
    for node in hierarchy: 
     local_result = local_result.setdefault(node, {}) 

print result 

はあなたを与える:

{ 
    'John': { 
     'Jim': {} 
    }, 
    'Fred': { 
     'Jim': { 
      'Bob': {}, 
      'Jack': {} 
     } 
    } 
} 
+0

皮肉なことに、これは私がJSで必要としていたものです... 2014年 –

0

あなたが探していますjsonモジュールのjson.dumps()については、

編集: ああ、私はあなたを今すぐ取得します。多分何か:

#paths is a list of strings containing the paths you are scraping from your site. 
hierarchy = {} 
for path in paths: 
    cursor = hierarchy 
    for part in path.split('/'): 
     if part not in cursor: 
      cursor[part] = {} 
     cursor = cursor[part] 
+0

上記のURLリストから階層的にフォーマットされたデータを作成しようとしています。これをjson.dumpsに渡して、階層的なJSONを得ることができます。 jQueryのこの例は、私が達成したいことを完全に示しています。http://stackoverflow.com/a/6232943/435089 –

関連する問題