Je travaille sur cela depuis un moment et je ne peux pas sembler tout ce que vous avez un bloc de données JSON qui ressemble à ce J'essaie Pour générer un compte de chaque valeur, quelque chose comme ceci à la fin: p> Remarque: il y a quelques lignes codées deux fois (comme le premier) que devrait être compté une seule fois forte> p> J'ai essayé de nombreuses choses différentes et que le plus proche que j'ai été est ce p> qui retourne: P> {('Human development',): 1}
{('Economic management',): 1}
{('Trade and integration',): 1, ('Public sector governance',): 1, ('Environment and natural resources management',): 1}
{('Social dev/gender/inclusion',): 1}
{('Trade and integration',): 1}
{('Social protection and risk management',): 1}
{('Public sector governance',): 1}
{('Environment and natural resources management',): 1}
{('Rural development',): 1}
{('Public sector governance',): 2}
{('Rural development',): 1}
{('Rural development',): 1, ('Social protection and risk management',): 2}
{}
{('Trade and integration',): 1, ('Environment and natural resources management',): 1}
{('Social protection and risk management',): 2}
{('Rural development',): 1, ('Environment and natural resources management',): 1}
{('Rural development',): 1}
{('Human development',): 1}
3 Réponses :
ne peut pas comprendre la seconde pour boucle Le TEMP_LIST CODE> est créé à chaque itération comme liste vide, alors pourquoi devez-vous faire ce lis = tuple (SET (TEMP_LIST))
code> lisez-le dans une variable nom code>:
Le problème concerne les erreurs en double, ce que j'essaie de rendre compte là-bas; Voir la première ligne devrait vraiment être simplement [{'code': '8', 'Nom': "Développement humain"}] Au lieu de [[{Code ':' 8 ',' Nom ': "Développement humain"} , [{'code': '8', 'Nom': "Développement humain"},] Mais depuis que c'est là, je dois faire un ensemble unique de chaque rangée. Bien qu'il puisse certainement être un moyen plus facile de ce faire?
Voir le commentaire ci-dessus, c'est proche mais manque les DuPes
input = [{'code': '8', 'name': 'Human development'},
{'code': '8', 'name': 'Human development'},
{'code': '1', 'name': 'Economic management'},
{'code': '8', 'name': 'Human development'},
{'code': '5', 'name': 'Trade and integration'},
{'code': '1', 'name': 'Economic management'},
{'code': '7', 'name': 'Social dev/gender/inclusion'}]
output = {}
for i in input:
output[i['name']] = output.get(i['name'], 0) + 1
#Output:{'Social dev/gender/inclusion': 1, 'Economic management': 2, 'Human
# development': 3, 'Trade and integration': 1}
Le problème est à nouveau les doublons qui sont faux, comme dans la ligne une.
Étant donné que les détails de l'entrée ne sont pas clairs, j'ai supposé que votre entrée ci-dessous et que vous avez atteint ci-dessous CODE:
wbp = [[{'code': '8', 'name': 'Human development'}, {'code': '8', 'name': 'Human development'}],
[{'code': '1', 'name': 'Economic management'}, {'code': '8', 'name': 'Human development'}],
[{'code': '5', 'name': 'Trade and integration'}, {'code': '1', 'name': 'Economic management'}],
[{'code': '7', 'name': 'Social dev/gender/inclusion'}]]
dictd = dict()
for record in wbp:
names = set([item['name'] for item in record]) # Remove duplicate names using set
for name in names:
dictd[name] = dictd.get(name, 0) + 1 # If name not found, then 0 + 1, else count + 1
print(dictd)
Oui sur la structure de données, le problème du développement humain devrait être 2, car cette première ligne est une erreur (il ne peut y avoir qu'un de chaque article par ligne)
OK, j'ai modifié les entrées de double entrée et filtrées à l'aide de l'opérateur Set CODE>. Maintenant, les résultats sont comme comment vous êtes attendu
Cela semble avoir réapparu une certaine manière, cela a fonctionné un charme alors.
Je ne comprends pas ton exemple. Donnez-moi une entrée et une sortie attendue
Si le compte pour le code
'Développement humain' code> soit 3?Votre entrée JSON ressemble-t-elle à cela?
{[{code ':' 8 ',' Nom ': "Développement humain"}, {"Code": "8'," Nom ":" Développement humain "}], [{" Code ": '1', 'Nom': 'Gestion économique'}, {'Code': '8', 'Nom': "Développement humain"}], [{"Code": "5 '," Nom ":" Trade ": et intégration '}, {' code ':' 1 ',' Nom ': "Gestion économique"}], [{"Code": "7'," Nom ": 'Nom":' Social Dev / Inclusion '}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]} code>@Swadhikarc, non, le compte devrait être 2, car la première version est une erreur. Aucune entrée ne devrait être capable de compter deux fois pour une valeur. oui, c'est à quoi ressemble l'entrée (une sous-chaîne de toute façon)
L'entrée @chiennguyen est la première case, la sortie attendue est la deuxième
@Swadhikarc; Je pense que vous avez posté (et peut-être supprimé?) Quelque chose qui a fonctionné. Je peux le poster, mais j'aimerais vous donner crédit, donc si vous vouliez le remettre ...
Ike content que cela ait fonctionné c'est le crédit.