Hallo BlackJack,
besten Dank für Deine Antwort. Aber so wirklich weitergeholfen hat sie mir leider nicht.
Wenn ich Dich richtig verstanden habe, ist %s nicht korrekt (hier meine Quelle, die mich auf den Trichter gebracht hat:
http://www.python-forum.de/viewtopic.php?f=23&t=31345, siehe Thread von Sirius3 ...)
Wenn ich schreibe:
Code: Alles auswählen
sql = "INSERT INTO data_v8 \
(metades, metakeys) \
VALUES (%s, %s);", \
metades, metakeys
cursor.execute(sql)
connection.commit()
bekomme ich folgende Meldung:
Traceback (most recent call last):
File "C:\Python27\max_codes\scraping_V13.py", line 118, in <module>
cursor.execute(sql)
File "c:\python27\lib\site-packages\mysql\connector\cursor.py", line 483, in execute
stmt = operation.encode(self._connection.python_charset)
AttributeError: 'tuple' object has no attribute 'encode'
Wenn ich nun - um Encoding-Probleme zu umgehn - das gleiche mit *sql verwende:
... Bekomme ich folgende Fehlermeldung:
Traceback (most recent call last):
File "C:\Python27\max_codes\check_V13.py", line 113, in <module>
cursor.execute(*sql)
TypeError: execute() takes at most 4 arguments (11 given)
Selbst wenn ich jetzt konkrete Werte eingebe, habe ich ein Problem:
Code: Alles auswählen
sql = "INSERT INTO data_v8 \
(metades, metakeys) \
VALUES ('metades', 'metakeys')"
cursor.execute(*sql)
connection.commit()
Auch hier bekomme ich wieder die gleiche Meldung:
Traceback (most recent call last):
File "C:\Python27\max_codes\check_V13.py", line 112, in <module>
cursor.execute(*sql)
TypeError: execute() takes at most 4 arguments (207 given)
Nehme ich das Sternchen wieder raus, läuft alles wunderbar. Nur das Lesen der Datensätze funktioniert nicht ...
Traceback (most recent call last):
File "C:\Python27\max_codes\check_mysql_datensaetze_anzeigen.py", line 20, in <module>
(str(data[0])) + ", " +(str(data[1]))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 4-5: ordinal not in range(128)
PS1: die leere Zeichenkette hatte ich für den automatisch zu vergebenden Primary Key von MySQL gesetzt. Wie ich aber jetzt gelernt habe, muss/darf ich diesen hier nicht aufführen, also habe ich ihn nun weggelassen.
--> ich vermute also, dass ich da (zusätzlich) ein encoding-Problem habe ...
Ideen? (und sorry für die blöden Anfänger-Fragen ...)