我有一个价值观,我想总结一下。 我已经使用此代码来实现此目的
Error: Command failed: ./configure --with-php-config=/home/.phpbrew/php/php-5.5.38/bin/php-config >> /home/.phpbrew/build/php-5.5.38/ext/mongo///build.log 2>&1 returns:
这会产生以下值,这是我期望的值。
countTest = Counter(chain.from_iterable(e.items() for e in tickets))
result = [{'name': key, 'value': value} for key, value in countTest.items()]
print(json.dumps(result, sort_keys=True, indent=4))
然而,我想要更密集的代表,最好像这样
[
{
"name": [
"ticket",
"Class A"
],
"value": 1
},
{
"name": [
"ticket",
"Class B"
],
"value": 2
},
{
"name": [
"ticket",
"Class C"
],
"value": 3
}
]
我怎样才能做到这一点?
答案 0 :(得分:2)
尝试这样的事情,
In [11]: lst = [{'name': ['ticket', 'Class A'], 'value': 1},
...: {'name': ['ticket', 'Class B'], 'value': 2},
...: {'name': ['ticket', 'Class C'], 'value': 3}]
In [12]: {'tickets':dict((i['name'][1],i['value']) for i in lst)}
Out[12]: {'tickets': {'Class A': 1, 'Class B': 2, 'Class C': 3}}
lst
是您生成的第一个结果。
答案 1 :(得分:1)
itertools
更难。
>>> {name: {item['name'][1]: item['value'] for item in items} for name, items in itertools.groupby(result, lambda x: x['name'][0])}
{'ticket': {'Class A': 1, 'Class B': 2, 'Class C': 3}}
从那里JSON很容易。
答案 2 :(得分:0)
从原始的结果
开始,并假设“ticket”是唯一的属性:
print(json.dumps( {'ticket':{x ['name'] [1]:x ['value'] for x in result}},
 sort_keys = True,indent = 4))
#{&# xA;#“ticket”:{
#“A类”:1,
#“B类”:2,
#“C类”:3
#}&# XA;#}
 代码>