Convertir tous les dictionnaires de la valeur de l'utf-8 (dictionnaire de compréhension?)

J'ai un dictionnaire et je veux convertir toutes les valeurs de l'utf-8. Cela fonctionne, mais est-il un "plus pythonic" de la sorte?

            for key in row.keys():
                row[key] = unicode(row[key]).encode("utf-8")

Pour une liste que je pouvais faire

[unicode(s).encode("utf-8") for s in row]

mais je ne suis pas sûr de la façon de faire l'équivalent chose pour les dictionnaires.

Ce qui est différent de Python Dictionnaire De Compréhension parce que je ne suis pas en train de créer un dictionnaire à partir de zéro, mais à partir d'un dictionnaire. Les solutions à la question de ne pas me montrer comment faire une boucle à travers les paires clé/valeur dans le dictionnaire déjà existant afin de le modifier pour en faire de nouveaux k/v paires pour le nouveau dictionnaire. La réponse (déjà accepté) ci-dessous montre comment faire et est beaucoup plus clair à lire/comprendre pour quelqu'un qui a une tâche similaire à la mienne que les réponses à la question connexe, qui est plus complexe.

  • Je suis impressionné de voir que vous avez réussi à venir avec la bonne phrase (dictionnaire de compréhension), mais pas pour de la recherche pour "python dictionnaire de compréhension"!
  • pourquoi êtes-vous convertir vos clés de l'utf-8? cela sonne comme XY problème
  • Double Possible de Python Dictionnaire de Compréhension
  • Danger Robinson! unicode(row[key]) va utiliser le jeu de caractères du système de décoder row[key]. Cela implique que row[key] est déjà codé un jeu de caractères spécifique. En outre, vous ne devriez pas encoder jusqu'à ce que vous avez besoin à la sortie de quelque part, dans ce cas, permettent l'impression de convertir ou d'écrire à l'aide d'un codage de texte wrapper, comme io.open()
  • J'ai trouvé compréhension de liste, et les extrapoler à un dictionnaire de la compréhension, mais ne trouvez pas un bon exemple, quand j'ai cherché sur google.
  • Je suis la conversion pas mes clés, mais mes valeurs de l'utf-8, car quand j'essaye d'écrire avec un CSV DictWriter il se brise sur des chaînes unicode qui sont en dehors de la plage ascii. À L'Aide De Python 2.7
  • Je vous conseille d'utiliser github.com/jdunck/python-unicodecsv au lieu d'essayer de rédiger votre propre encodeur/décodeur
  • pourquoi est-ce mieux? Avoir à installer des paquets supplémentaires fait que c'est un soucis pour le partage du code.