【问题标题】:AttributeError: 'Timestamp' object has no attribute 'translate'AttributeError:“时间戳”对象没有属性“翻译”
【发布时间】: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


【解决方案1】:

所以我改变了数据库本身的数据类型,它工作了。所以似乎是 SqlAlchemy 包装的问题,不确定。

所以这不是一个真正的答案,但不幸的是我必须这样做。

【讨论】:

    猜你喜欢
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    • 2020-05-19
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    相关资源
    最近更新 更多