Kann jemand bitte sagen, warum bin ich auf Python den folgenden Fehler empfangen 3. Das folgende ist die Zurückverfolgungs:String-Argument ohne Codierung
TypeError
Traceback (most recent call last) <ipython-input-24-a81d4875414b> in <module>()
7 filename = [("id"), ("name"), ("email"), ("amount"),("sent")]
8 writer= csv.DictWriter(temp_file, fieldnames = fieldnames)
----> 9 writer.writeheader()
10
11 for row in reader:
C:\Users\johsc_001\AppData\Local\conda\conda\envs\ipykernel_py3\lib\csv.py in writeheader(self)
142 def writeheader(self):
143 header = dict(zip(self.fieldnames, self.fieldnames))
--> 144 self.writerow(header)
145
146 def _dict_to_list(self, rowdict):
C:\Users\johsc_001\AppData\Local\conda\conda\envs\ipykernel_py3\lib\csv.py in writerow(self, rowdict)
153
154 def writerow(self, rowdict):
--> 155 return self.writer.writerow(self._dict_to_list(rowdict))
156
157 def writerows(self, rowdicts):
C:\Users\johsc_001\AppData\Local\conda\conda\envs\ipykernel_py3\lib\tempfile.py in func_wrapper(*args, **kwargs)
481 @_functools.wraps(func)
482 def func_wrapper(*args, **kwargs):
--> 483 return func(*args, **kwargs)
484 # Avoid closing the file as long as the wrapper is alive,
485 # see issue #18879.
TypeError: a bytes-like object is required, not 'str'
Hier ist der Quellcode:
import csv
import shutil
from tempfile import NamedTemporaryFile
filename = 'appendpyt2.csv'
temp_file = NamedTemporaryFile(delete= False)
with open(filename, 'rb')as csvfile, temp_file:
reader =csv.DictReader(csvfile)
filename = ["id", "name", "email", "amount", "sent"]
writer= csv.DictWriter(temp_file, fieldnames = ["id", "name", "email","amout", "sent"])
writer.writeheader()
for row in reader:
print(row)
writer.writerow({
"id": row["id"],
"name": row["name"],
"email":row["email"],
"amout":"1234.56",
"sent": ""
})
es scheint, dass die probl em öffnet die Datei als 'rb'. Stellen Sie den StackTrace bitte auf die Frage – ShmulikA
Können Sie die tatsächliche Traceback zeigen? Übrigens, das ist kein [minimales, nachprüfbares Beispiel] (https://stackoverflow.com/help/mcve). Es hilft enorm, wenn Sie einen zur Verfügung stellen. – jszakmeister
Sie haben dies sowohl mit 2,7 als auch mit 3-x markiert. Was benutzt du? Oft unterscheiden sich String-Coding-Probleme zwischen den beiden. – hpaulj