Как вставить значения в таблицу через MySQLdb Python - PullRequest
0 голосов
/ 22 января 2019

Итак, я пытался сохранить значения файла CSV 'employee_reviews.csv' в таблице моих сотрудников. Я читаю файл, сохраняю его в виде строки, затем разбиваю элементы до двухмерного списка, который затем проходит по каждой строке. Я уверен, что есть более простой способ сделать это. Когда я запускаю свой код, я получаю сообщение об ошибке ->

cur.execute ("INSERT INTO (id, компания, местоположение, даты, job_title, резюме, плюсы, минусы, advice_to_management, общее_рейтинг, work_balance_stars, culture_value_stars, career_opportunities_stars, comp_benefit_stars, senior_management_stars, полезно_счет, ссылка) ЦЕННОСТИ (% S,% s,% s,% s,% s,% s,% s,% s,% s,% s,% s,% s,% s,% s,% s,% s,% с)», (интермедиат (строка [0]), строка [1], строка [2], строка [3], строка [4], строка [5], строка [6], строка [7], строка [8], int (строка [9]), строка [10], строка [11], строка [12], строка [13], строка [14], int (row [15]), row [16])) ValueError: недопустимый литерал для int () с база 10: «нет»


import csv
import MySQLdb

mydb = MySQL.connect(host="host",user="user",passwd="passwd",db="Employee_Review")
cur = mydb.cursor()
#cur.execute("CREATE TABLE employees(id INT, company VARCHAR(20), location VARCHAR(40), dates DATE, job_title VARCHAR(20), summary VARCHAR(50), pros VARCHAR(1000), cons VARCHAR(1000), advice_to_management VARCHAR(50), overall_ratings INT, work_balance_stars VARCHAR(10), culture_value_stars VARCHAR(10), career_opportunities_stars VARCHAR(10), comp_benefit_stars VARCHAR(10), senior_management_stars VARCHAR(10), helpful_count INT, link VARCHAR(75) )")

f = open("employee_reviews.csv","r")
fString = f.read()

fList = []
for line in fString.split('\n'):
   fList.append(line.split(','))

for row in fList:
   if row == fList[0]:
      continue #skip the first row for it contains the name of the columns

   cur.execute("INSERT INTO (id, company, location, dates, job_title, summary, pros, cons, advice_to_management, overall_ratings, work_balance_stars, culture_value_stars, career_opportunities_stars, comp_benefit_stars, senior_management_stars, helpful_count, link) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)",(int(row[0]), row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], int(row[9]), row[10], row[11], row[12], row[13], row[14], int(row[15]), row[16] ))
   mydb.commit()

mydb.close()

CSV-файл можно найти здесь: https://inclass.kaggle.com/petersunga/google-amazon-facebook-employee-reviews/discussion

1 Ответ

0 голосов
/ 22 января 2019

Одним из значений в вашем CSV является 'none', которое нельзя преобразовать в целое число в одном из ваших целочисленных столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...