Probleme beim Erstellen eines CSV-JSON-Konvertierungstools mit Python

Beim Konvertieren einer CSV-Datei mit Japanisch in eine JSON-Datei hatte ich Probleme beim Konvertieren des Zeichencodes.

UnicodeDecodeError: 'ascii' codec can't decode byte...

Ich habe es mit dem folgenden Code gelöst, vorausgesetzt, der Zeichencode der zu lesenden CSV-Datei wurde in utf-8n konvertiert.

csvToJson.py


# -*- coding: utf-8 -*-
#Modul
import codecs
import csv
import json

#Öffnen Sie die CSV-Datei
f = open('Geben Sie die zu lesende CSV-Datei an', 'r')
reader = csv.DictReader(f, fieldnames = ("Feldname 1", "Feldname 2", ...,"Feldname N."))
print "CSV loaded."

#In das JSON-Format konvertieren
out = json.dumps( [row for row in reader], sort_keys=False, ensure_ascii=False, encoding='utf_8' )
print "JSON parserd."

#In JSON-Datei speichern
f=codecs.open('Geben Sie die zu exportierende JSON-Datei an','w', 'utf_8')
f.write(out)
print "JSON saved."

Erwägung

Es gibt viele Dinge, die Python-Anfänger nicht verstehen, aber verhindern Sie verstümmelte Zeichen mit der folgenden internen Verarbeitung? Geben Sie beim Lesen einer Datei mit open nicht den Zeichencode an und verwenden Sie csv.DictReader für das Unicode-Objekt Erstellen Sie ein Wörterbuch. Durch Setzen von sure_ascii = False in json.dumps können Sie Unicode-Objekte verarbeiten, und indem Sie utf-8 in der Codierung angeben, können Sie den Inhalt des out-Objekts auf utf-8 setzen und Japanisch ohne verstümmelte Zeichen ausgeben. Schaffst du das?

Recommended Posts

Probleme beim Erstellen eines CSV-JSON-Konvertierungstools mit Python
Ein Memo beim Erstellen einer Python-Umgebung mit Miniconda
[Python] Memo zum Erstellen von Scraping-Tools
Vorsichtsmaßnahmen beim Erstellen eines Python-Generators
Erstellen einer einfachen Power-Datei mit Python
Hinweise beim Erstellen einer Umgebung mit Python
Zu beachtende Punkte bei der Lösung von DP-Problemen mit Python
Fehler beim Installieren eines Moduls mit Python pip
[Python3] Eine Geschichte, die bei der Zeitzonenkonvertierung steckt
Vorgehensweise zum Erstellen eines mit Python erstellten LineBot
Befehle zum Erstellen einer Python3-Umgebung mit virtualenv
Erstellung von Schabewerkzeugen
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
Erstellen Sie mit Python Pandas Py Installer ein CSV-Formatierungswerkzeug
Aktuelles Verzeichnis beim Erstellen eines neuen Verzeichnisses mit Jupyter
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen eines Python-Skripts
Ein Ei mit Python erstellen
Machen Sie eine Lotterie mit Python
Fehler beim Spielen mit Python
Erstellen Sie ein Verzeichnis mit Python
[AtCoder Erklärung] Kontrollieren Sie ABC180 A, B, C Probleme mit Python!
Ein Memo, wenn mit Python + OpenCV schnell ein Gesicht erkannt wird
[Python] Hinweise beim Versuch, Numpy mit Cython zu verwenden
Verwenden Sie ein Makro, das beim Speichern von Python mit vscode ausgeführt wird
Ein Hinweis beim Erstellen eines gerichteten Diagramms mit Graphviz in Python
[AtCoder Erklärung] Kontrollieren Sie ABC158 A, B, C Probleme mit Python!
[Python] Was ein unerfahrener Programmierer vor dem Erstellen eines Tools getan hat
Erstellen Sie mit python wxpython + openCV ein einfaches Videoanalysetool
So einfach wie möglich eine GUI mit Python erstellen [tkinter edition]
[AtCoder Erklärung] Kontrollieren Sie ABC164 A, B, C Probleme mit Python!
[AtCoder Erklärung] Kontrollieren Sie ABC168 A, B, C Probleme mit Python!
[Python, Selenium, PhantomJS] Eine Geschichte beim Scrapen einer Website mit fauler Last
[5.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[Python] Was ist eine with-Anweisung?
Löse ABC163 A ~ C mit Python
Bedienen Sie den Belegdrucker mit Python
Python-Grafikhandbuch mit Matplotlib.
Vorsichtsmaßnahmen beim Erstellen eines zweidimensionalen Arrays mit denselben Werten
[2nd] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Erstellen eines bestimmten Baums mit Scikit-Learn
Lassen Sie uns eine GUI mit Python erstellen.
Erstellen eines Flask-Servers mit Docker
Löse ABC166 A ~ D mit Python
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Erstellen Sie eine virtuelle Umgebung mit Python!
Ich habe mit Python eine Lotterie gemacht.
MP3 → WAV-Konvertierung mit Python
Erstellen einer virtuellen Umgebung mit Python 3
Beheben von AtCoder-Problemen Empfehlung mit Python (20200517-0523)
Löse ABC168 A ~ C mit Python
Erstellen Sie ein Empfehlungssystem mit Python
Ein Hinweis, dem ich beim Erstellen einer Tabelle mit SQL Alchemy verfallen war
[Python] Generiere ein Passwort mit Slackbot
Löse ABC162 A ~ C mit Python
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Löse ABC167 A ~ C mit Python
Löse ABC158 A ~ C mit Python
Lassen Sie uns ein Diagramm mit Python erstellen! !!