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'
}
3 Réponses :
src = {
'166, 175': 't2',
'479': 't3'
}
res = {}
for k, v in src.items():
for i in k.split(', '):
res[int(i)] = v
print(res)
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(',')
}
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)))