コンマ区切りのユーザーとそのアクセス許可のリストがあり、一部のユーザーには最大 8 つのアクセス許可があります。
user_a, permission_1
user_b, permission_1, permission_2
user_c, permission_1, permission_2, permission_3
すべてのユーザーと権限のペアが別の行にある、カンマ区切りのユーザーと権限のリストを出力する必要があります。
user_a, permission_1
user_b, permission_1
user_b, permission_2
user_c, permission_1
user_c, permission_2
user_c, permission_3
csv モジュールを使用する以下の私の python コードは現在動作していません:
import csv
with open('user_list.csv') as user_list:
dict_reader = csv.DictReader(user_list)
ul = []
for row in dict_reader:
ul.append(row)
with open('output.txt','w') as output:
fields = 'USER','PERM1','PERM2','PERM3','PERM4',
'PERM5','PERM6','PERM7','PERM8'
dict_writer = csv.DictWriter(output, fields)
csv.DictWriter.writeheader(dict_writer)
for i in ul:
dict_writer.writerow(i)
それは私に次のトレースバックを与えています:
Traceback (most recent call last):
File "cops_ul_parse.py", line 15, in <module>
dict_writer.writerow(i)
File "C:\Python27\lib\csv.py", line 148, in writerow
return self.writer.writerow(self._dict_to_list(rowdict))
File "C:\Python27\lib\csv.py", line 144, in _dict_to_list
", ".join(wrong_fields))
ValueError: dict contains fields not in fieldnames: PERM8, PERM7, PERM6, PERM5
なぜこれが機能しないのか考えていますか? または、目的の出力を達成するためのより良い方法はありますか? 多分正規表現がうまくいくでしょうか?