我想用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