Bien qu'il ait été adopté, on peut quand même le mentionner : Quand je vois ce setdefault, je pense à collections.defaultdict Il est plus puissant que setdefault. Les paramètres acceptés peuvent être le type d'initialisation par défaut ou une fonction. . En fait, cela peut être plus concis
from collections import defaultdict
ips = (
(1, '10.121.1.1:4730'),
(2, '127.0.0.1:4730'),
(3, '127.0.0.1:4730')
)
result = defaultdict(list)
for v, k in ips:
result[k].append((v, k))
Ce qui précède est le tableau, et ce qui suit est le JSON après le numéro de série dict(). Parcourez simplement le tableau et concaténez-le dans un dictionnaire et produisez du JSON.
import json
a = (
(1, '10.121.1.1:4730'),
(2, '127.0.0.1:4730'),
(3, '127.0.0.1:4730')
)
b = dict()
for value in a :
number = value[0]
address = value[1]
if address not in b :
b[address] = []
b[address].append([number, address])
print json.dumps(b)
Basé sur les suggestions fournies par @dokelung et @松林2 gars
Bien qu'il ait été adopté, on peut quand même le mentionner :
Quand je vois ce setdefault, je pense à collections.defaultdict Il est plus puissant que setdefault. Les paramètres acceptés peuvent être le type d'initialisation par défaut ou une fonction. . En fait, cela peut être plus concis
Ce qui précède est le tableau, et ce qui suit est le JSON après le numéro de série dict(). Parcourez simplement le tableau et concaténez-le dans un dictionnaire et produisez du JSON.