Konvertiere jeden Wörterbuchwert in utf-8 (Wörterbuchverstehen?)

Ich habe ein Wörterbuch und ich möchte jeden Wert in utf-8 umwandeln. Das funktioniert, aber gibt es einen "mehr pythonischen" Weg?

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

Für eine Liste konnte ich tun

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

Aber ich bin mir nicht sicher, wie ich das Gleiche für Wörterbücher mache.

Dies ist anders als Python Dictionary Comprehension, weil ich nicht versuchen, ein Wörterbuch von Grund auf neu zu erstellen, sondern aus einem vorhandenen Wörterbuch. Die Lösungen für die verknüpfte Frage zeigen mir nicht, wie man die Schlüssel / Wert-Paare im vorhandenen Wörterbuch durchläuft, um sie in neue k / v-Paare für das neue Wörterbuch zu ändern. Die Antwort (bereits akzeptiert) unten zeigt, wie das zu tun und ist viel klarer zu lesen / zu verstehen für jemanden, der eine Aufgabe hat, die meiner ähnlich ist als die Antworten auf die verknüpfte Frage, die komplexer ist.

3 Solutions collect form web for “Konvertiere jeden Wörterbuchwert in utf-8 (Wörterbuchverstehen?)”

Verwenden Sie ein Wörterbuchverstehen . Es sieht so aus, als hättest du mit einem Wörterbuch so:

  mydict = {k: unicode(v).encode("utf-8") for k,v in mydict.iteritems()} 

Das Beispiel für Wörterbuchverstehen ist nahe dem Ende des Blocks im Link.

Es hängt davon ab, warum du implizit für UTF-8 kodierst. Wenn es ist, weil Sie in eine Datei schreiben, ist die pythonische Art und Weise, Ihre Zeichenfolgen als Unicode zu verlassen und auf Ausgabe zu kodieren:

 with io.open("myfile.txt", "w", encoding="UTF-8") as my_file: for (key, values) in row.items(): my_string = u"{key}: {value}".format(key=key, value=value) my_file.write(my_string) 

Sie können einfach durch die Schlüssel iterieren, wenn Sie wollten:

 {x:unicode(a[x]).encode("utf-8") for x in a.keys()} 
  • Wie man eine datei liest, die als ansi oder unicode in python gespeichert werden kann?
  • Python-Codierung - Konnte nicht zu utf8 decodieren
  • MIMEText UTF-8 kodiert Probleme beim Senden von E-Mails
  • Mongodb Einfügung zeigt 'Strings in Dokumente muss gültig sein UTF-8'
  • Ansi zu UTF-8 mit Python verursacht Fehler
  • Konvertieren von Unicode in Python
  • Django: Nicht-ASCII-Charakter
  • BeautifulSoup "encode (" utf-8 ")
  • Kauderwelsch aus urlopen
  • Erstellen Sie eine APF-8-CSV-Datei in Python
  • UTF-8 HTML- und CSS-Dateien mit Stückliste (und wie man die Stückliste mit Python entfernt)
  • Python ist die beste Programmiersprache der Welt.