«Метка времени» Python не может быть преобразована в тип MySQLPython

Программы на Python
Ответить
Anonymous
 «Метка времени» Python не может быть преобразована в тип MySQL

Сообщение Anonymous »

У меня есть данные в Excel, которые я хочу вставить в таблицу MySQL.
Я читаю Excel в Dataframe.
Данные включают столбец даты с датами, которые я конвертирую в дату и время, чтобы соответствовать настройке таблицы MySQL (столбец даты имеет тип datetime).
Когда Пытаюсь вставить данные в таблицу, получаю ошибку:


mysql.connector.errors.ProgrammingError: Ошибка обработки
параметры формата; 'Timestamp' Python не может быть преобразован в тип MySQL



Когда я распечатываю дату после ее преобразования, я получаю это в формате «ГГГГ-ММ-ДД ЧЧ: ММ: СС», который, похоже, является форматом, который требует MySQL?


10 мая 2011 00:00:00


Возможно, я делаю что-то просто неправильно, но не могу заставить это работать. Есть предложения?

SQL таблицы:

Код: Выделить всё

CREATE TABLE `Weight` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`Date` datetime NOT NULL,
`Weight` float NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_c
Мой скрипт Python, немного расширенный для включения некоторых фиктивных данных:

Код: Выделить всё

import pandas as pd
import mysql.connector
import numpy as np

#import csv in dataframe
#df = pd.read_excel('/excel.xlsx')
#dataframe for this question on stackoverflow
startDate = '2011-05-03'
dateList = pd.date_range(startDate, periods=1000).tolist()
df = pd.DataFrame({'Day': dateList,
'Weight': np.random.normal(loc=68, scale=10, size=(1000,))
})
df['Day'] = pd.to_datetime(df['Day'],errors='raise')

mydb = mysql.connector.connect(
host="host",
user="user",
port="port",
passwd="Password",
database="database_name"
)

mycursor = mydb.cursor()
sql = "INSERT INTO Weight (Date, Weight) values (%s, %s)"

for index, row in df.iterrows() :
val = (row['Day'], row['Weight'])
mycursor.execute(sql, val)
Для ясности: на части execute(sql, val) происходит сбой

Подробнее здесь: https://stackoverflow.com/questions/530 ... mysql-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»