一直从tushare 上download 数据到oracle ,中文里去总是乱码,现已解决。
1. sqlcalchemy 如果自动创建的表 string 类型的总是clob,所以看上是乱码,其实真的不一定,所以自已手工建表
-- Create table
create table TICK_DATA3
(
TIME VARCHAR2(30),
PRICE FLOAT,
CHANGE VARCHAR2(30),
VOLUME NUMBER(19),
AMOUNT NUMBER(19),
TYPE VARCHAR2(30),
STOCK VARCHAR2(30),
RQ VARCHAR2(30)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
code
# -*- coding: utf-8 -*-
"""
Created on Sun Aug 14 21:47:49 2016
@author: john
"""
import sys
from sqlalchemy import create_engine
import tushare as ts
reload(sys)
sys.setdefaultencoding('utf-8')
df= ts.get_tick_data('600848', date='2015-12-22')
engine = create_engine('oracle://stock:stock@127.0.0.1:1521/orcl',encoding='gbk')
#engine = create_engine('mysql+mysqldb://book:book@localhost:3306/stock?charset=utf8')
#存入数据库
df['stock']='600048' 增加股票号
df['rq']='20151222' 增加日期
df.to_sql('tick_data3',engine,if_exists='append',index=False) ##不存index列
df.to_csv("d://test.xlsx",mode='a')
df