1
votes

Python: Comment convertir une clé séparée par des virgules json en dictionnaire

J'ai un JSON au format ci-dessous:

166: 't2'
175: 't2'
479: 't3' 

Je veux le convertir en carte:

{
  '166, 175': 't2',
  '479': 't3'
}


0 commentaires

3 Réponses :


3
votes
src = {
  '166, 175': 't2',
  '479': 't3'
}
res = {}
for k, v in src.items():
    for i in k.split(', '):
        res[int(i)] = v
print(res)

0 commentaires

3
votes

Vous pouvez utiliser une certaine compréhension du dictionnaire ici:

>>> {
...     int(k): v
...     for ks, v in data.items()
...     for k in ks.split(',')
... }
{166: 't2', 175: 't2', 479: 't3'}

Pour les exemples de données, cela nous donne:

{
    int(k): v
    for ks, v in data.items()
    for k in ks.split(',')
}


0 commentaires

1
votes

Un peu compliqué cependant

src = {
      '166, 175': 't2',
      '479': 't3'
    }

output = dict(reduce(lambda a, b: a + b, map(lambda b:zip(b.split(', '), [a[b]] * len(b.split(', '))), src)))


0 commentaires