Bei der Konvertierung von CSV in JSON mit Python bin ich auf einen Zeichencode gestoßen

Überblick

Als ich mit Python ein Tool zum Konvertieren einer CSV-Datei in eine JSON-Datei erstellt habe, wurde der Inhalt der JSON-Datei verstümmelt, sodass ich die Korrekturmethode verlassen werde.

Ressource

CSV-Datei → JSON-Dateikonvertierungsquelle (vor Änderung)

csv_to_json.py


import json
import csv

json_list = []

#CSV-Datei lesen
with open('./csv_sample.csv', 'r') as f:
    for row in csv.DictReader(f):
        json_list.append(row)

#In JSON-Datei schreiben
with open('./json_sample.json', 'w') as f:
    json.dump(json_list, f)
# with codecs.open('./json_sample.json', 'w', 'utf-8') as f:
#     json.dump(json_list, f, ensure_ascii=False)

#JSON-Datei wird geladen
with open('./json_sample.json', 'r') as f:
    json_output = json.load(f)

CSV-Datei

csv_sample.csv


Name,Rangfolge,Ursprungsland
Nadal,2,Spanien
Federer,3,Schweiz
Jokovic,1,Serbien

Führen Sie csv_to_json.py aus, um eine JSON-Datei zu generieren

Führen Sie csv_to_json.py aus

(csv_to_json_tool) bash-3.2$ python csv_to_json.py

JSON-Datei nach der Ausführung generiert

[{"\u540d\u524d": "\u30ca\u30c0\u30eb", "\u9806\u4f4d": "2", "\u51fa\u8eab\u56fd": "\u30b9\u30da\u30a4\u30f3"}, {"\u540d\u524d": "\u30d5\u30a7\u30c7\u30e9\u30fc", "\u9806\u4f4d": "3", "\u51fa\u8eab\u56fd": "\u30b9\u30a4\u30b9"}, {"\u540d\u524d": "\u30b8\u30e7\u30b3\u30d3\u30c3\u30c1", "\u9806\u4f4d": "1", "\u51fa\u8eab\u56fd": "\u30bb\u30eb\u30d3\u30a2"}]

Die Charaktere wurden verstümmelt. Überprüfen Sie den Zeichencode der JSON-Datei mit dem Befehl [file --mime].

(csv_to_json_tool) bash-3.2$ file --mime json_sample.json 
json_sample.json: application/json; charset=us-ascii

Der Zeichencode lautet us-ascii, und es scheint, dass er in einem Unicode-Escape-Zustand geschrieben wurde.

Verstümmelte Zeichen in der JSON-Datei wurden behoben

Durch Angabe von "sure_ascii = False" im dritten Argument von json.dump beim Schreiben einer JSON-Datei konnte mit utf-8 geschrieben und ein Escapezeichen vermieden werden.

csv_to_json.py


import json
import csv

json_list = []

#CSV-Datei lesen
with open('./csv_sample.csv', 'r') as f:
    for row in csv.DictReader(f):
        json_list.append(row)

#In JSON-Datei schreiben
with codecs.open('./json_sample.json', 'w') as f:
    json.dump(json_list, f, ensure_ascii=False)      #"ensure_ascii=False"Angeben

#JSON-Datei wird geladen
with open('./json_sample.json', 'r') as f:
    json_output = json.load(f)
    print(json_output)
(csv_to_json_tool) bash-3.2$ file --mime json_sample.json 
json_sample.json: application/json; charset=utf-8

JSON-Datei nach der Ausführung generiert

json_sample.json


[{"Name": "Nadal", "Rangfolge": "2", "Ursprungsland": "Spanien"}, {"Name": "Federer", "Rangfolge": "3", "Ursprungsland": "Schweiz"}, {"Name": "Jokovic", "Rangfolge": "1", "Ursprungsland": "Serbien"}]

Es wurde so angezeigt, wie es war!

Recommended Posts

Bei der Konvertierung von CSV in JSON mit Python bin ich auf einen Zeichencode gestoßen
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
Ein Memorandum, weil ich beim Versuch, MeCab mit Python zu verwenden, gestolpert bin
Ich möchte den Fortschritt in Python anzeigen!
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Ich hatte das Gefühl, dass ich den Python-Code nach C ++ 98 portiert habe.
Stolpern Sie beim Konvertieren der bidirektionalen Liste in JSON in Go
Ich möchte R-Datensatz mit Python verwenden
Ich möchte am Ende etwas mit Python machen
"Cython" -Tutorial, das Python explosiv macht: Wenn C ++ - Code von der Bibliothek abhängt. Vorbereitung
In Python gelernter Zeichencode
Ich habe versucht, den in Pandas häufig verwendeten Code zusammenzufassen
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Lösen Sie das japanische Problem, wenn Sie das CSV-Modul in Python verwenden.
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Ich möchte Python mit VS-Code ausführen können
"Cython" -Tutorial, das Python explosiv macht: Wenn C ++ - Code von der Bibliothek abhängt. Schreiben Sie setup.py.
Im Python-Befehl zeigt Python auf Python3.8
Ich habe die Warteschlange in Python geschrieben
Ich habe den Stack in Python geschrieben
Wie man Japanern nicht entgeht, wenn man mit json in Python umgeht
[Linux] Ich möchte das Datum wissen, an dem sich der Benutzer angemeldet hat
Ich habe einen AttributeError erhalten, als ich die offene Methode in Python verspottet habe
Moduszeile, wenn Sie den entsprechenden Python-Code in Vim öffnen
Ich möchte Python GUI ausführen, wenn Raspberry Pi startet
Konvertieren Sie nach dem Aufrufen der Shell-Datei unter Python CSV in Parkett.
Zeitzonenspezifikation beim Konvertieren einer Zeichenfolge in einen Datums- / Uhrzeittyp mit Python
Artikel zum Lesen, wenn Blenders Python-Skriptcode in 2.80 nicht funktioniert
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
Ich habe einen Fehler bekommen, als ich versucht habe, Luigi parallel in Windows zu verarbeiten, aber die Lösung
Führen Sie den Ausgabecode auf dem lokalen Webserver in Python als "A, gibt vor, B zu sein" aus
Eine Geschichte, die nicht funktioniert hat, als ich versucht habe, mich mit dem Python-Anforderungsmodul anzumelden
Über den Fehler, den ich beim Versuch, Adafruit_DHT von Python auf Raspberry Pi zu verwenden, festgestellt habe
Ich möchte ausgeben, während der Wert des Typs (z. B. datetime) konvertiert wird, der bei der Ausgabe von json mit Python nicht unterstützt wird
[Python] Ich habe versucht, die Nacht der Galaxienbahn mit WordCloud zu visualisieren!
Ich habe versucht, PLSA in Python zu implementieren
Dateneingabe / -ausgabe in Python (CSV, JSON)
Ich habe versucht, Permutation in Python zu implementieren
Als ich versuchte, Python auszuführen, wurde ich zum Microsoft Store übersprungen
So blenden Sie die Eingabeaufforderung aus, wenn Sie Python in Visual Studio 2015 ausführen
"Buch, um Programmierkenntnisse zu trainieren, um in der Welt zu kämpfen" Python-Code Lösungsbeispiel --1.1 Doppelte Zeichenfolge
Ich bin auf die Hatena Keyword API gestoßen
Ich habe versucht, PLSA in Python 2 zu implementieren
Ich möchte eine in Python in PDF konvertierte Tabelle wieder in CSV konvertieren
Ich möchte das Ergebnis von "Zeichenfolge" .split () in Python stapelweise konvertieren
Ich möchte die abstrakte Klasse (ABCmeta) von Python im Detail erklären
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
"Cython" -Tutorial, das Python explosiv macht: Wenn C ++ - Code von der Bibliothek abhängt. Zuallererst CMake.
Codebeispiel zum Abrufen von oauth_token und oauth_token_secret der Twitter-API in Python 2.7
Ich habe versucht, die verkratzten Daten in CSV zu speichern!
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe versucht, einen Formatierer zu entwickeln, der Python-Protokolle in JSON ausgibt
Der Dateiname war in Python schlecht und ich war süchtig nach Import
Ich wollte ABC159 mit Python lösen
Ich habe versucht, PPO in Python zu implementieren
Ich habe es mit den Top 100 PyPI-Paketen versucht.> Ich habe versucht, die auf Python installierten Pakete grafisch darzustellen
Ich erhalte eine Fehlermeldung, wenn ich ein Python-Plug-In in Visual Studio Code in die pyenv-Umgebung einfüge