23课时,在运行下面代码时出错:
import pandas as pd
trackers = engine.strategy.bar_trackers
df2 = pd.DataFrame.from_dict([t.__dict__ for t in trackers.values()])
df2
错误信息是:
Exception ignored in: 'pandas._libs.tslibs.conversion._localize_tso'
Traceback (most recent call last):
File "pandas_libs\tslibs\timezones.pyx", line 266, in pandas._libs.tslibs.timezones.get_dst_info
AttributeError: 'NoneType' object has no attribute 'total_seconds'
请大佬们指教这是什么问题,谢谢!
郭易燔 wrote:
使用python -m vnstudio启动veighna_studio,或者使用python run.py启动vntrader,看一下命令行输出,确定一下数据库使用的是否是mysql
现在有个疑惑的点是,代码的最后两句如果直接写成get_database().save_bar_data(bars),则数据还是去不到数据库,请问您知道为啥吗,分开写和合着写不一样吗?
郭易燔 wrote:
使用python -m vnstudio启动veighna_studio,或者使用python run.py启动vntrader,看一下命令行输出,确定一下数据库使用的是否是mysql
已经配置成了mysql,后来把import 改了一下,由get_database改成database,就可以了,代码改成了这样```
from vnpy.trader.database import database, DB_TZ
from vnpy.trader.object import BarData
from vnpy.trader.constant import Exchange, Interval
from datetime import datetime
from csv import DictReader
with open("IF888.csv") as f:
reader = DictReader(f)
bars = []
for row in reader:
dt = datetime.strptime(row["datetime"], "%Y-%m-%d %H:%M:%S")
bar = BarData(
symbol=row["symbol"],
exchange=Exchange(row["exchange"]),
datetime=DB_TZ.localize(dt),
interval=Interval.MINUTE,
open_price=float(row["open"]),
low_price=float(row["low"]),
high_price=float(row["high"]),
close_price=float(row["close"]),
volume=row["volume"],
open_interest=row["open_interest"],
gateway_name="DB"
)
bars.append(bar)
database_manager = get_database()
database_manager.save_bar_data(bars)
```
from datetime import datetime
from csv import DictReader
with open("IF888.csv") as f:
reader = DictReader(f)
bars = []
for row in reader:
dt = datetime.strptime(row["datetime"], "%Y-%m-%d %H:%M:%S")
bar = BarData(
symbol=row["symbol"],
exchange=Exchange(row["exchange"]),
datetime=DB_TZ.localize(dt),
interval=Interval.MINUTE,
open_price=float(row["open"]),
low_price=float(row["low"]),
high_price=float(row["high"]),
close_price=float(row["close"]),
volume=row["volume"],
open_interest=row["open_interest"],
gateway_name="DB"
)
bars.append(bar)
database_manager = get_database()
database_manager.save_bar_data(bars)
求教,数据分析课程23讲,与SQL交互的代码中,将database_manager.save_bar_data(bars)改成get_database().save_bar_data(bars)后,返回值是True,但mysql数据库刷新后也找不到保存的表,请问是哪里出错啦,谢谢!