Il est facile de créer manuellement un fichier CSV à l'aide d'une feuille de calcul (comme Excel) pour créer un grand nombre de données avec le même élément. Cependant, lorsque je le transmets à un autre outil, je dois parfois utiliser un fichier JSON, j'ai donc créé un script Python à utiliser dans ce cas. J'avais besoin de données au format JSON pour exécuter unittest de Python d'une manière basée sur les données.
Python unittest DDT > Example usage
OS : Windows Python : v3.5.1
Le fichier JSON est mis en retrait afin qu'il ait une mise en page facile à lire pour les utilisateurs. Quand j'ai mis un commentaire japonais, je ne l'ai pas mis car une erreur d'encodage s'est produite sur la ligne json.dumps lors de l'exécution. (Je n'ai pas pu le résoudre moi-même, alors je l'ai mis en attente. Je me demande si tout Linux et Mac ne donneront pas d'erreur avec UTF-8.)
script.py
# -*- coding: utf-8 -*-
import csv
import json
import sys, os, codecs
argvs = sys.argv
for csv_file_path in argvs:
if csv_file_path == __file__:
continue
with codecs.open(csv_file_path, 'r', 'shift_jis') as f:
json_reader = csv.reader(f)
name, ext = os.path.splitext(os.path.basename(csv_file_path))
with codecs.open(name + '_datapool.json', 'w', 'shift_jis') as json_file:
out = json.dumps([line_json for i, line_json in enumerate(json_reader) if i > 0] ,ensure_ascii=False, indent=4, sort_keys=False, separators=(',', ': '))
json_file.write(out)
Exécutez le fichier de script ci-dessus avec le fichier csv comme argument. (Plusieurs spécifications autorisées)
>python script.py csv_file1.csv
Vous trouverez ci-dessous un exemple de fichier JSON créé.
csv_file1_datapool.json
[
[
"Test 1",
"Test 2"
],
[
"Tesuto 1",
"Grève 2"
]
]
Obtenir le nom du fichier avec l'argument Python: Obtenir les arguments de ligne de commande - variable sys.argv
Spécifiez l'encodage pour lire et écrire des fichiers Site d'apprentissage de l'introduction à l'application de fichiers de lecture et d'écriture Python