2017-06-23 17 views
1

は、私は、この形式でリストを持っている:のpythonジャンゴ辞書

[{'BURGLARY': [0, 1, 1, 0], 'PHYSICAL ASSAULT': [0, 0, 1, 0], 'ROBBERY': 
    [0, 0, 0, 1], 'VANDALISM': [2, 0, 1, 0], 'THEFT': [1, 3, 2, 1], 'DRUGS AND SUBSTANCE ABUSE': [0, 0, 1, 0], 'SEXUAL HARASSMENT': [0, 0, 0, 1]}] 

私はその形式を変更したい:私はこれをアーカイブするにはどうすればよい

[ 
    { 
    name:"BURGLARY", 
    data:[0, 1, 1, 0] 
    } 
    { 
    name:"PHYSICAL ASSAULT", 
    data:[0, 0, 1, 0] 
    } 
... 
] 

?助けてください。

答えて

3
data = [{'BURGLARY': [0, 1, 1, 0], 'PHYSICAL ASSAULT': [0, 0, 1, 0], 'ROBBERY': 
     [0, 0, 0, 1], 'VANDALISM': [2, 0, 1, 0], 'THEFT': [1, 3, 2, 1], 'DRUGS 
     AND SUBSTANCE ABUSE': [0, 0, 1, 0], 'SEXUAL HARASSMENT': [0, 0, 0, 1]}] 
rlt = [{'name': key, 'data': val} for key,val in data[0].items()] 

RLTは、あなたが望むものである

+0

この男は私よりも速く行く=))I tは良い答えです。 –

2
data = [{'BURGLARY': [0, 1, 1, 0], 'PHYSICAL ASSAULT': [0, 0, 1, 0], 'ROBBERY': 
    [0, 0, 0, 1], 'VANDALISM': [2, 0, 1, 0], 'THEFT': [1, 3, 2, 1], 'DRUGS AND SUBSTANCE ABUSE': [0, 0, 1, 0], 'SEXUAL HARASSMENT': [0, 0, 0, 1]}] 

new_data = [{ "name": k, "data" : data[0][k]} for k in data[0]] 

出力:

[{'data': [0, 0, 0, 1], 'name': 'ROBBERY'}, 
{'data': [2, 0, 1, 0], 'name': 'VANDALISM'}, 
{'data': [0, 0, 0, 1], 'name': 'SEXUAL HARASSMENT'}, 
{'data': [1, 3, 2, 1], 'name': 'THEFT'}, 
{'data': [0, 1, 1, 0], 'name': 'BURGLARY'}, 
{'data': [0, 0, 1, 0], 'name': 'PHYSICAL ASSAULT'}, 
{'data': [0, 0, 1, 0], 'name': 'DRUGS AND SUBSTANCE ABUSE'}] 
1
a=[{'BURGLARY': [0, 1, 1, 0], 'PHYSICAL ASSAULT': [0, 0, 1, 0], 'ROBBERY': [0, 0, 0, 1], 'VANDALISM': [2, 0, 1, 0], 'THEFT': [1, 3, 2, 1], 'DRUGS AND SUBSTANCE ABUSE': [0, 0, 1, 0], 'SEXUAL HARASSMENT': [0, 0, 0, 1]}] 
result=[] 
for b in a: 
    for i,j in b.items(): 
     result.append({"name":i,"data":j}) 
print(result) 

出力

[{'name': 'VANDALISM', 'data': [2, 0, 1, 0]}, {'name': 'SEXUAL HARASSMENT', 'data': [0, 0, 0, 1]}, {'name': 'PHYSICAL ASSAULT', 'data': [0, 0, 1, 0]}, {'name': 'DRUGS AND SUBSTANCE ABUSE', 'data': [0, 0, 1, 0]}, {'name': 'THEFT', 'data': [1, 3, 2, 1]}, {'name': 'ROBBERY', 'data': [0, 0, 0, 1]}, {'name': 'BURGLARY', 'data': [0, 1, 1, 0]}] 
+0

良い古き良き答えのために、+1。しかし、b.items()はメモリ内に新しいリストを作成することに注意してください。 dictキーで参照する方が速いでしょう。 –

+0

ありがとうございました。 あなたはすごいです –