Problèmes lors de la création d'un outil de conversion csv-json avec python

Lors de la conversion d'un fichier csv contenant du japonais en fichier json, j'avais du mal à convertir le code de caractère.

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

Je l'ai résolu avec le code suivant en supposant que le code de caractère du fichier csv à lire a été converti en utf-8n.

csvToJson.py


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

#Ouvrez le fichier CSV
f = open('Spécifiez le fichier csv à lire', 'r')
reader = csv.DictReader(f, fieldnames = ("Nom du champ 1", "Nom du champ 2", ...,"Nom du champ N"))
print "CSV loaded."

#Convertir au format JSON
out = json.dumps( [row for row in reader], sort_keys=False, ensure_ascii=False, encoding='utf_8' )
print "JSON parserd."

#Enregistrer dans un fichier JSON
f=codecs.open('Spécifiez le fichier json à exporter','w', 'utf_8')
f.write(out)
print "JSON saved."

Considération

Il y a beaucoup de choses que les débutants en python ne comprennent pas, mais évitez-vous les caractères déformés avec le traitement interne suivant? Lors de la lecture d'un fichier avec open, ne spécifiez pas le code de caractère et utilisez csv.DictReader pour l'objet unicode Créez un dictionnaire. En définissant ensure_ascii = False dans json.dumps, vous pouvez gérer les objets Unicode, et en spécifiant utf-8 dans l'encodage, vous pouvez définir le contenu de l'objet out sur utf-8 et afficher le japonais sans caractères déformés. Êtes-vous capable de le faire?

Recommended Posts

Problèmes lors de la création d'un outil de conversion csv-json avec python
Un mémo lors de la création d'un environnement python avec miniconda
[Python] Mémo de création de l'outil de grattage
Précautions lors de la création d'un générateur Python
Créer un fichier power simple avec Python
Remarques lors de la création d'un environnement avec python
Points à noter lors de la résolution de problèmes DP avec Python
Erreur lors de l'installation d'un module avec Python pip
[Python3] Une histoire bloquée avec la conversion du fuseau horaire
Procédure de création d'un LineBot réalisé avec Python
Commandes pour créer un environnement python3 avec virtualenv
Création d'outils de grattage
Faisons un outil de veille de commande avec python
Créer un outil de formatage CSV avec Python Pandas Py Installer
Répertoire actuel lors de la création d'un nouveau avec Jupyter
[Piyopiyokai # 1] Jouons avec Lambda: création d'un script Python
Créer un œuf avec python
Faites une loterie avec Python
Erreur lors de la lecture avec python
Créer un répertoire avec python
[Explication AtCoder] Contrôle ABC180 Problèmes A, B, C avec Python!
Un mémo lorsque le visage est détecté avec Python + OpenCV rapidement
[python] Remarques lors de la tentative d'utilisation de numpy avec Cython
Utilisez une macro qui s'exécute lors de l'enregistrement de python avec vscode
Une note lors de la création d'un graphe dirigé à l'aide de Graphviz en Python
[Explication AtCoder] Contrôle ABC158 Problèmes A, B, C avec Python!
[Python] Ce qu'un programmeur inexpérimenté a fait avant de créer un outil
Créez un outil d'analyse vidéo simple avec python wxpython + openCV
Créer une interface graphique aussi facilement que possible avec python [édition tkinter]
[Explication AtCoder] Contrôle ABC164 Problèmes A, B, C avec Python!
[Explication AtCoder] Contrôle ABC168 Problèmes A, B, C avec Python!
[Python, Selenium, PhantomJS] Une histoire lors de la capture d'un site Web avec une charge paresseuse
[5e] J'ai essayé de créer un certain outil de type Authenticator avec python
[Python] Qu'est-ce qu'une instruction with?
Résoudre ABC163 A ~ C avec Python
Faites fonctionner l'imprimante de reçus avec python
Manuel de graphisme Python avec Matplotlib.
Précautions lors de la création d'un tableau à deux dimensions avec toutes les mêmes valeurs
[2nd] J'ai essayé de créer un certain outil de type Authenticator avec python
Créer un arbre déterminé avec scikit-learn
Faisons une interface graphique avec python.
Créer un serveur Flask avec Docker
Résoudre ABC166 A ~ D avec Python
[3ème] J'ai essayé de créer un certain outil de type Authenticator avec python
Créez un environnement virtuel avec Python!
J'ai fait une loterie avec Python.
Conversion MP3 → WAV avec Python
Créer un environnement virtuel avec Python 3
Recommandation de résolution des problèmes d'AtCoder avec python (20200517-0523)
Résoudre ABC168 A ~ C avec Python
Créer un système de recommandation avec python
Une note à laquelle j'étais accro lors de la création d'une table avec SQL Alchemy
[Python] Générer un mot de passe avec Slackbot
Résoudre ABC162 A ~ C avec Python
[4th] J'ai essayé de créer un certain outil de type Authenticator avec python
Résoudre ABC167 A ~ C avec Python
Résoudre ABC158 A ~ C avec Python
Faisons un graphe avec python! !!