Ошибка при вставке данных из файла в mysql с использованием python

есть файл, содержащий данные, которые я хочу вставить в таблицу в mysql с помощью python. Я извлек данные из файла с помощью «с открытым» и преобразовал их в список. Теперь в списке элементы являются строковыми, и я хочу изменить строку в кортеж, чтобы я мог получить данные из этого в mysql.

    import mysql.connector


    with open("/home/ninky/com.csv", "r") as fp:
        content = fp.read()
    lines = content.split("\n")
    print(lines)

        myconn = mysql.connector.connect(host = "localhost", user = "root", database = "EMPSALARY" 
        cur = myconn.cursor()
        db = "insert into PERSON(name,age,year)values(%s,%s,%s)"
        myconn = cur.execute(db, lines)
        myconn.close()
result:
-----------
['deepak,29,2019', 'ninky,29,2010', 'suraj,29,2020', 'pratap,30,2018', '']
deepak,29,2019
ninky,29,2010
suraj,29,2020
pratap,30,2018
Traceback (most recent call last):   File
"/home/ninky/PycharmProjects/new/csv_db.py", line 23, in <module>
    cur.execute(db, lines)   File "/usr/local/lib/python3.6/dist-packages/mysql/connector/cursor.py",
line 543, in execute
    "Not all parameters were used in the SQL statement") mysql.connector.errors. ProgrammingError: Not all parameters were used
in the SQL statement
Process finished with exit code 1
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В строках у вас есть список, содержащий каждую строку вашего файла CSV. Затем вам нужно перебрать все строки и снова разделить разделитель (','):

import mysql.connector

with open("/home/ninky/com.csv", "r") as fp:
    content = fp.read()
lines = content.split("\n")
print(lines)


myconn = mysql.connector.connect(host = "localhost", user = "root", database = "EMPSALARY")
cur = myconn.cursor()

db = "insert into PERSON (name,age,year) values (%s,%s,%s)"
for l in lines:
    data=l.split(',')
    cur.execute(db, data)
myconn.close()

Трассировка (последний последний вызов): Файл "/home/ninky/PycharmProjects/new/csv_db.py", строка 18, в <module> myconn = cur.execute(db, data) Файл "/usr/local/lib/ python3.6/dist-packages/mysql/connector/curs‌​or.py", строка 518, выполняется, если не self._connection: ReferenceError: объект со слабой ссылкой больше не существует Процесс завершен с кодом выхода 1

Suchismita Rout 22.05.2019 10:45

Извините, я ошибся, я отредактировал вопрос. Вы должны удалить myconn= перед cur.execute. попробуй сейчас

nacho 22.05.2019 11:59

Трассировка (последний последний вызов): файл «/home/ninky/PycharmProjects/new/csv_db.py», строка 18, в <module> cur.execute(db, data) File «/usr/local/lib/python3. 6/dist-packages/mysql/connector/curs‌​or.py", строка 540, при выполнении stmt = RE_PY_PARAM.sub(psub, stmt) File "/usr/local/lib/python3.6/dist-packages/mysql /connector/curs‌​or.py", строка 78, в вызов "Недостаточно параметров для оператора SQL") mysql.connector.errors.ProgrammingError: Недостаточно параметров для оператора SQL Процесс завершен с кодом выхода 1

Suchismita Rout 22.05.2019 12:19

commit отсутствовал, поэтому он не отражался в db. моя вина.

Suchismita Rout 22.05.2019 12:33

Другие вопросы по теме