Я пытаюсь пропустить содержимое дешифрованного файла, хранящегося в переменной «decrypt», и записать это содержимое в таблицу базы данных MySQL (data_1)., пожалуйста, помогите мне определить смысл этой ошибки.
Пожалуйста, помогите мне определить, что означает эта ошибка, а также возможная работа вокруг ошибки.
>>> import gnupg
>>> import csv
>>> import MySQLdb
>>> import StringIO
>>> import io
>>> gpg = gnupg.GPG(gnupghome="/home/chefgit/Desktop/.gnupg")
>>> file = open("/home/chefgit/Desktop/file_10.gpg", 'r+')
>>> decrypt=gpg.decrypt_file(file)
>>> connect = MySQLdb.connect('localhost', 'chefgit', 'taku99', 'python_db_1')
>>> cursor = connect.cursor()
>>> sql = "INSERT INTO data_1 ('id', 'first_name', 'last_name', 'email','country', 'ip_address')VALUES('%d','%s','%s','%s','%s','%s')"
>>> csv_input=csv.reader(StringIO.StringIO(decrypt))
>>> for row in csv_input:
... cursor.execute(sql,row)
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 187, in execute
query = query % tuple([db.literal(item) for item in args])
TypeError: %d format: a number is required, not str
>>> csv_input=csv.reader(StringIO.StringIO(decrypt))
>>> for row in csv_input:
... cursor.executemany(sql, row)
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 237, in executemany
r = r + self.execute(query, a)
File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 187, in execute
query = query % tuple([db.literal(item) for item in args])
TypeError: %d format: a number is required, not str
>>> csv_input = csv.reader(StringIO.StringIO(decrypt))
>>> for row in csv_input:
... print(row)
...
['obin', 'Mitchell', '[email protected]', 'Czech Republic', '247.22.171.221']
['2', 'Kathy', 'Wheeler', '[email protected]', 'Indonesia', '90.207.243.94']
['3', 'Johnny', 'Grant', '[email protected]', 'Cyprus', '40.53.219.97']
['4', 'Henry', 'Dunn', '[email protected]', 'China', '75.234.225.243']
['5', 'Craig', 'Holmes', '[email protected]', 'Ukraine', '218.128.169.131']
['6', 'Phillip', 'Shaw', '[email protected]', 'France', '96.80.252.82']
['7', 'Lillian', 'Peterson', '[email protected]', 'Russia', '104.156.33.182']
['8', 'Linda', 'Hall', '[email protected]', 'China', '253.195.137.88']
['9', 'Denise', 'Patterson', '[email protected]', 'Kazakhstan', '71.170.34.130']
[]
Спасибо для ответа. так как я могу исправить это в своем коде. Любые идеи? – user3530362
теперь он выдает эту ошибку: TypeError: недостаточно аргументов для строки формата – user3530362