Um viele Daten mit demselben Element zu erstellen, ist es einfach, eine CSV-Datei mithilfe einer Tabelle (z. B. Excel) manuell zu erstellen. Wenn ich es jedoch an ein anderes Tool übergebe, muss ich manchmal eine JSON-Datei verwenden, sodass ich ein Python-Skript für diesen Fall erstellt habe. Ich brauchte JSON-formatierte Daten, um Pythons Unittest datengesteuert auszuführen.
Python unittest DDT > Example usage
OS : Windows Python : v3.5.1
Die JSON-Datei wird eingerückt, sodass sie ein Layout aufweist, das für Benutzer leicht lesbar ist. Wenn ich einen japanischen Kommentar eingefügt habe, habe ich ihn nicht eingefügt, da zur Laufzeit ein Codierungsfehler in der Zeile json.dumps aufgetreten ist. (Ich konnte es nicht selbst lösen, also habe ich es auf Eis gelegt. Ich frage mich, ob Linux und Mac mit UTF-8 keinen Fehler machen.)
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)
Führen Sie die obige Skriptdatei mit der CSV-Datei als Argument aus. (Mehrere Spezifikationen erlaubt)
>python script.py csv_file1.csv
Unten finden Sie ein Beispiel für eine erstellte JSON-Datei.
csv_file1_datapool.json
[
[
"Test 1",
"Test 2"
],
[
"Tesuto 1",
"Streik 2"
]
]
Dateinamen mit Argument abrufen Python: Befehlszeilenargumente abrufen - Variable sys.argv
Geben Sie die Codierung zum Lesen und Schreiben von Dateien an Lernseite von der Einführung bis zur Anwendung von Python-Lese- und Schreibdateien
Recommended Posts