VeighNa量化社区
你的开源社区量化交易平台
wwq8888's Avatar
Member
离线
1 帖子
声望: 0

vnpy2.0.7 没有改动
使用下面的
`
from vnpy.trader.constant import Exchange, Interval #交易所,kline周期类型
from vnpy.trader.object import BarData #类名驼峰命名
from vnpy.trader.database import database_manager #对象小写,中间下划线
CHINA_TZ = pytz.timezone("Asia/Shanghai") #时区
with open("if_data.csv") as f:
reader = csv.DictReader(f)

bars = []
for d in reader:
    dt = datetime.strptime(d["datetime"], "%Y-%m-%d %H:%M:%S")
    dt = CHINA_TZ.localize(dt)#带上时区

    bar = BarData(
        symbol=d["symbol"],
        exchange=Exchange(d["exchange"]),
        interval=Interval.MINUTE,
        datetime=dt,
        open_price=d["open"],
        high_price=d["high"],
        low_price=d["low"],
        close_price=d["close"],
        volume=d["volume"],
        open_interest=d["open_interest"],
        gateway_name="DB"
    )
    bars.append(bar)#添加到列表

database_manager.save_bar_data(bars)

`
载入.csv文件时,发生下面的报错,请问如何解决?

Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\peewee.py",
line 2829, in execute_sql
cursor.execute(sql, params or ())
sqlite3.IntegrityError: NOT NULL constraint failed: dbbardata.turnover

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File ".\load_data_36.py", line 34, in <module>
database_manager.save_bar_data(bars)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\vnpy\trader\database\database_sql.py", line 373, in save_bar_data
self.class_bar.save_all(ds)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\vnpy\trader\database\database_sql.py", line 148, in save_all
DbBarData.insert_many(c).on_conflict_replace().execute()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\peewee.py", line 1698, in inner
return method(self, database, args, **kwargs)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\peewee.py", line 1769, in execute
return self._execute(database)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\peewee.py", line 2473, in _execute
return super(Insert, self)._execute(database)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\peewee.py", line 2236, in _execute
cursor = database.execute(self)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\peewee.py", line 2842, in execute
return self.execute_sql(sql, params, commit=commit)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\peewee.py", line 2836, in execute_sql
self.commit()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\peewee.py", line 2627, in exit
reraise(new_type, new_type(
exc_args), traceback)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\peewee.py", line 178, in reraise
raise value.with_traceback(tb)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\peewee.py", line 2829, in execute_sql
cursor.execute(sql, params or ())
peewee.IntegrityError: NOT NULL constraint failed: dbbardata.turnover

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】