JSON形式のデータがあります:
data = {"outfit":{"shirt":"red,"pants":{"jeans":"blue","trousers":"khaki"}}}
見た目が美しくインタラクティブであるため、InfoVisを使用してこのデータを決定木にプロットしようとしています。問題は、グラフが次の形式のJSONデータを取得することです。
data = {id:"nodeOutfit",
name:"outfit",
data:{},
children:[{
id:"nodeShirt",
name:"shirt",
data:{},
children:[{
id:"nodeRed",
name:"red",
data:{},
children:[]
}],
}, {
id:"nodePants",
name:"pants",
data:{},
children:[{
id:"nodeJeans",
name:"jeans",
data:{},
children:[{
id:"nodeBlue",
name:"blue",
data:{},
children[]
},{
id:"nodeTrousers",
name:"trousers",
data:{},
children:[{
id:"nodeKhaki",
name:"khaki",
data:{},
children:[]
}
}
すべてのキーと値に「id」、「data」、「children」が追加され、すべてのキーと値が「name」であることに注意してください。これらの余分な値を追加するには、再帰関数を作成する必要があるように感じます。これを行う簡単な方法はありますか?
これが私がやりたいことですが、それが正しい方法かどうかはわかりません。すべてのキーと値をループして、適切なものに置き換えます。
for name, list in data.iteritems():
for dict in list:
for key, value in dict.items():
#Need something here which changes the value for each key and values
#Not sure about the syntax to change "outfit" to name:"outfit" as well as
#adding id:"nodeOutfit", data:{}, and 'children' before the value
離れているかどうか教えてください。
これが彼らの例ですhttp://philogb.github.com/jit/static/v20/Jit/Examples/Spacetree/example1.html
そしてここにデータがありますhttp://philogb.github.com/jit/static/v20/Jit/Examples/Spacetree/example1.code.html