【发布时间】:2020-01-17 02:21:57
【问题描述】:
我正在尝试使用 SqlAlchemy 在数据库中以 DATE 格式插入数据,问题是当我去检查数据库时,只有 NULL 值。
如何使用 python/SqlAlchemy 将时间戳数据插入 MySQL 数据库。
AttributeError:“时间戳”对象没有“翻译”属性。
数据
import numpy as np
import pandas as pd
import sqlalchemy as db
from sqlalchemy import create_engine
import pymysql
import MySQLdb
import json
import datetime
import time
# dataframe
df = pd.DataFrame({ "year" : [ "2017/10/10", "2018/10/10", "2019/10/10"]
我的代码:
# transforming to datetime
df.year = pd.to_datetime(df.year)
out[]:
year datetime64[ns]
#adding in list of dict to be able to insert at db
values_list2 = []
for i in range(len(df)):
values_list2.append({ "Rece_Year": df["year"][i] })
# create table in db with Datetime column format
data = db.Table('Test', metadata,
db.Column('Rece_Year', db.DateTime(), default=True),
extend_existing=True
)
metadata.create_all(engine)
#Insert data
query = db.insert(data)
如果我使用String,它可以工作。但我需要日期格式
data = db.Table('Test', metadata,
db.Column('Rece_Year', db.String(100), nullable=True),
extend_existing=True
)
metadata.create_all(engine)
【问题讨论】:
-
你试过pandas原生函数
DataFrame.to_sql吗? -
@Erfan nop,让我试试这个..
-
@Parfait,我更新了问题``` db = SqlAlchemy```,你可以在导入处查看
-
请显示
SHOW CREATE TABLE Test的输出,以便我们查看您的表架构。还有什么是元数据?请设置minimal reproducible example。
标签: python pandas sqlalchemy