test.csv
のデータには国と部門だけが含まれています。これはwriter.writerow(data)
に記入されます。辞書を使用してPythonを使用して列にデータを書き込む
writer = csv.DictWriter
と入力してwriter.writeheader()
を追加しました。
辞書の辞書のデータを使用して追加された列を入力しようとしています。データは、その列で約200行までが埋め尽くされます。
import json
import csv
def parse_file(input):
with open(input, 'r') as input:
content = input.readlines()
csv_file = open('test.csv', 'wb+')
writer = csv.DictWriter(csv_file, fieldnames=["employee_id", "firstname", "lastname", "country", "dept"], delimiter=',')
writer.writeheader()
dicts = [{'employee_id':'123456', 'firstname':'Tom', 'lastname':'jones' }]
for line in content:
line_segments = line.split('\t')
data = json.loads(line_segments[0])
writer.writerow(data)
for d in dicts:
print(d['id'])
writer.writerow([d['employee_id'],d['firstname'],d['lastname']])
エラー:トレースバック状態でのエラーとして
Traceback (most recent call last):
File "parse_file.py", line 36, in <module>
parse_input_file(args.input_file)
File "parse_file.py", line 25, in parse_input_file
writer.writerow([d['femployee_id'],d['firstname'],d['lastname']])
File "C:\Users\\AppData\Local\Continuum\Miniconda3\csv.py", line 152, in writerow
return self.writer.writerow(self._dict_to_list(rowdict))
File "C:\Users\\AppData\Local\Continuum\Miniconda3\\lib\csv.py", line 148, in _dict_to_list
+ ", ".join([repr(x) for x in wrong_fields]))
ValueError: dict contains fields not in fieldnames: '123456', 'Tom', 'Jones'
'dicts = [{ 'EMPLOYEE_ID': '123456'、 'firstnameの': 'トム'、 '姓': 'ジョーンズ} ] '間違った考え方のcos' employee_id'は '123456'なので、headerは静的なので、値だけを書くことができます! '' "123456"、 "Tom"、 "jones"] 'キーを含めないでください! – dsgdfg