私はPythonでcassandra cfstatsを解析しようとしています。私はこれまでのところいくつかの成功を収めていますが、私が望む形式で辞書を手に入れることはできません。私は近くにいるが、まだそこにはいない。Python 2カスケード/ネストされた辞書
JSON構造は、私がしたい:
{
"data": [{
"{#KP}": "system_traces",
"{#TABLE}": "events"
}, {
"{#KP}": "system_traces",
"{#TABLE}": "sessions"
}, {
"{#KP}": "system",
"{#TABLE}": "IndexInfo"
}]
}
JSON私は取得しています:
{
"data": [{
"{#KP}": "system_traces"
}, {
"{#TABLE}": "events"
}, {
"{#TABLE}": "sessions"
}, {
"{#KP}": "system"
}, {
"{#TABLE}": "IndexInfo"
}, {
"{#TABLE}": "available_ranges"
}, {
"{#TABLE}": "batches"
}, {
"{#TABLE}": "batchlog"
}, {
"{#TABLE}": "built_views"
}]
}
コードは、私がこれまで持っている:
def parse_values(self, text):
text = text.strip().split('\n')
values = []
for line in text:
cfstats = {}
line = line.strip()
if not line or line.startswith('-'):
continue
name, value = line.strip().split(': ', 1)
# append keyspaces and tables to list
if name == "Keyspace":
cfstats['{#KP}'] = value
values.append(cfstats)
elif name == "Table":
cfstats['{#TABLE}'] = value
values.append(cfstats)
return json.dumps({'data': values})
に/カスケード辞書を参加方法はありますPython 2?
をあなたが得ている出力は、あなたが望む出力に表示するよりも 'Table'エントリがはるかに多いことを示唆しています。それらで何が起こると思いますか?それぞれに同じ##KP値を繰り返しますか? – Blckknght
はい、まさに私が欲しいものです:-) – mobu