Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2014
400
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.00 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import click
  5. import datetime
  6. from datetime_toolbox import *
  7.  
  8. import traceback
  9. import sqlalchemy
  10. import pandas as pd
  11. import numpy as np
  12.  
  13. import mysql.connector
  14.  
  15. import logging
  16.  
  17. class Datetime64Converter(mysql.connector.conversion.MySQLConverter):
  18.     """ A mysql.connector Converter that handles datetime64 types """
  19.  
  20.     def _timestamp_to_mysql(self, v):
  21.         return v.value
  22.         #return value.view('<i8')
  23. #http://stackoverflow.com/questions/25093950/avoid-mysqlconverter-object-has-no-attribute-timestamp-to-mysql-error-with
  24. #def connect(config):
  25. def connect():
  26.     config = {
  27.         'host'    : 'localhost',
  28.         'database': 'test',
  29.         'user'    : 'root',
  30.         'password': '123456',
  31.         'port': 3306
  32.     }
  33.  
  34.     conn = mysql.connector.connect(**config)
  35.     conn.set_converter_class(Datetime64Converter)
  36.     return(conn)
  37.  
  38. def main():
  39.     #df = pd.DataFrame({"a": [1,2,3,4]})
  40.     filename = "orcl-2000.csv"
  41.     df = pd.read_csv(filename, sep=',')
  42.     #db_uri = "mysql+mysqlconnector://{user}:{password}@{host}:{port}/{database}" # or without mysqlconnector (need MySQLdb)
  43.     #db_uri = "mysql+mysqldb://{user}:{password}@{host}:{port}/{database}" # or without mysqlconnector (need MySQLdb)
  44.     #db_uri = db_uri.format(
  45.     #    user = "root",
  46.     #    password = "123456",
  47.     #    host = "127.0.0.1",
  48.     #    database = "test",
  49.     #    port = 3306
  50.     #)
  51.     #engine = sqlalchemy.create_engine(db_uri)
  52.  
  53.     #scheme = 'mysql+mysqldb'
  54.     scheme = 'mysql+mysqlconnector'
  55.  
  56.     config = {
  57.         'host'    : 'localhost',
  58.         'database': 'test',
  59.         'user'    : 'root',
  60.         'password': '123456',
  61.         'port': 3306
  62.     }
  63.  
  64.     """
  65.    db_uri = "{scheme}://{user}:{password}@{host}:{port}/{database}"
  66.    db_uri = db_uri.format(
  67.        scheme = scheme,
  68.        user = config['user'],
  69.        password = config['password'],
  70.        port = config['port'],
  71.        host = config['host'],
  72.        database = config['database']
  73.    )
  74.    engine = sqlalchemy.create_engine(db_uri)
  75.    """
  76.  
  77.     db_uri = "{scheme}://".format(scheme=scheme)
  78.  
  79.     #engine = sqlalchemy.create_engine(db_uri, creator=lambda: connect(config))
  80.  
  81.     engine = sqlalchemy.create_engine(db_uri, creator=connect)
  82.  
  83.     df["Date"] = pd.to_datetime(df["Date"])
  84.     df["Date"] = df["Date"] + np.timedelta64(1, 'us') # to test resolution issue
  85.     #df["Date"] = df["Date"].astype(datetime.datetime)
  86.     #df["Date"] = df["Date"].map(dt2int)
  87.     #df["Date"] = df["Date"].view("<i8")
  88.     #df["Date"] = pd.DatetimeIndex(df["Date"]).to_pydatetime()
  89.  
  90.     df = df.set_index("Date")
  91.     ##df.index = df.index.to_pydatetime()
  92.     #df.index = df.index.map(datetime.datetime)
  93.     #df.index = df.index.astype(datetime.datetime)
  94.  
  95.     print(df)
  96.     print(df.dtypes)
  97.     print(type(df.index), df.index.dtype)
  98.     print(type(df.index[0]))
  99.  
  100.     df.to_sql("orcl", engine, flavor="mysql", if_exists="replace")
  101.  
  102. if __name__ == '__main__':
  103.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement