使用的功能菜单,数据管理,数据导入
使用的功能菜单,数据管理,数据导入
rockya7096091feb14e64 wrote:
使用的功能菜单,数据管理,数据导入
图里的列名是datetime,你写成了datatime。
汗颜汗颜,谢谢!
以上代码运行,出现下面问题,小白实在是找不到那儿错误。请教大家
linhertz wrote:
以上代码运行,出现下面问题,小白实在是找不到那儿错误。请教大家
请在save_bar_data(bars, collection_name)函数里去掉collection_name参数。
学习了 👍
感谢楼主 / 抱拳
这个目前时不时不适用了
请教各位大佬,报错AttributeError: 'str' object has no attribute 'value',找了两个小时不知道问题出在哪,从表面上看,DataFrame没啥问题啊
BarData会自动调用自己的post_init函数,然后会去调用exchange.value,但是你传进去的exchange是个字符串类型的,没有value所以报错,
你前面from vnpy.trader.constant import Exchange,然后传入时用Exchange(row.exchange)试一下
郭易燔 wrote:
BarData会自动调用自己的post_init函数,然后会去调用exchange.value,但是你传进去的exchange是个字符串类型的,没有value所以报错,
你前面from vnpy.trader.constant import Exchange,然后传入时用Exchange(row.exchange)试一下
看到您的回复瞬间找到问题了,我直接用了insert字符串了,后来发现Exchage是有value的,非常感谢
veighna 3.2.0版本,下面代码,亲测好用
from vnpy.trader.constant import (Exchange, Interval)
import pandas as pd
from vnpy.trader.database import get_database
from vnpy.trader.object import (BarData,TickData)
from datetime import datetime
from pytz import timezone
tz = timezone( "Asia/Shanghai")
def move_df_to_sqlitedb(imported_data:pd.DataFrame,collection_name:str):
bars = []
start = None
count = 0
for row in imported_data.itertuples():
bar = BarData(
symbol=row.symbol,
exchange=row.exchange,
datetime=tz.localize(datetime.fromisoformat(row.datetime)),
#datetime=row.datetime.replace(tzinfo=utc_8),
interval=row.interval,
volume=row.volume,
open_price=row.open,
high_price=row.high,
low_price=row.low,
close_price=row.close,
open_interest=row.open_interest,
gateway_name="DB",
)
bars.append(bar)
# do some statistics
count += 1
if not start:
start = bar.datetime
end = bar.datetime
# insert into database
database_manager.save_bar_data(bars)
print(f"Insert Bar: {count} from {start} - {end}")
database_manager = get_database()
imported_data = pd.read_csv(r'D:\JP\15_程序\Msly\a1905.csv',encoding='gbk')
imported_data.drop('turnover',axis=1,inplace=True)
float_columns = ['open', 'high', 'low', 'close', 'volume', 'open_interest']
for col in float_columns:
imported_data[col] = imported_data[col].astype('float')
imported_data['exchange'] = Exchange.DCE
imported_data['interval'] = Interval.MINUTE
imported_data['symbol'] ='a1905'
move_df_to_sqlitedb(imported_data,'a1905')
1 请问导入数据库的代码是在哪里运行呢?还是添加到VNPY安装目录下的某个文件中呢?
2 如果要导入到系统默认的SQlite数据库中,下面代码中的user 后面的root要改吗?password后面的引号中要填密码吗?好像没有设置密码。
settings={
"database": "database.db",
"host": "localhost",
"port": 3306,
"user": "root",
"password": "",
"authentication_source": "admin"
}
rockya7096091feb14e64 wrote:
图里的时间格式是excel显示问题,实际上已经是'2021-04-15 13:37:00'这种了
求指教
我也同样。 不论年月日的分隔符是 YYYY-mm-dd 还是 YYYY/mm/dd, excel里总是按 YYYY/mm/dd 显示。 不好判断自己的格式是否设置完成了。 怎么解决?