用python api写入数据到含有array vector列的流表失败

流表定义如下,其中askPrice和bidPrice的类型是array vector。

share streamTable(
    10000:0, 
    `time`sym`askPrice`bidPrice, 
    [DATETIME,SYMBOL,DOUBLE[],DOUBLE[]]
    ) as testSt;

python 代码如下:

import dolphindb as ddb
import pandas as pd
import numpy as np

if __name__ == "__main__":
    se = ddb.session("localhost", 8848)
    df = pd.DataFrame(
        {
            "time": pd.Timestamp.now().to_numpy(),
            "sym": ["600519.SH"],
            "askPrice":[np.array([11.0,12.0],dtype=np.float64)], 
            "bidPrice":[np.array([11.1,12.1],dtype=np.float64)], 
        }
    )

    n = se.run("tableInsert{testSt}", df)
    print(n)

运行时提示:RuntimeError: <Exception> in call: Failed to append data to column 'askPrice'。

我改成如下,也不行:

import dolphindb as ddb
import pandas as pd
import numpy as np

if __name__ == "__main__":
    se = ddb.session("localhost", 8848,"admin", "123456")

    values = np.array([np.array([11,12,13,14],dtype=np.float64)],dtype=object)

    df = pd.DataFrame(
        {
            "time": pd.Timestamp.now().to_numpy(),
            "sym": ["600519.SH"],
            "askPrice":values, 
            "bidPrice":values, 
            #"askPrice":[np.array([11.0,12.0],dtype=np.float64)], 
            #"bidPrice":[np.array([11.1,12.1],dtype=np.float64)], 
        }
    )

    n = se.run("tableInsert{testSt}", df)

提示如下错误:

Traceback (most recent call last):
  File "c:/Users/demo/Documents/WeChat Files/wxid_4gb23h622cn121/FileStorage/File/2023-01/py_sub/test_pub.py", line 15, in <module>
    "bidPrice":values,
  File "C:\Users\demo\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\frame.py", line 435, in __init__
    mgr = init_dict(data, index, columns, dtype=dtype)
  File "C:\Users\demo\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\internals\construction.py", line 254, in init_dict
    return arrays_to_mgr(arrays, data_names, index, columns, dtype=dtype)
  File "C:\Users\demo\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\internals\construction.py", line 69, in arrays_to_mgr
    arrays = _homogenize(arrays, index, dtype)
  File "C:\Users\demo\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\internals\construction.py", line 323, in _homogenize
    val, index, dtype=dtype, copy=False, raise_cast_failure=False
  File "C:\Users\demo\AppData\Local\Programs\Python\Python37\lib\site-packages\pandas\core\construction.py", line 482, in sanitize_array
    raise Exception("Data must be 1-dimensional")
Exception: Data must be 1-dimensional

我运行在windows上,相关版本如下:

PS C:\Users\demo> pip list
Package                            Version  
---------------------------------- ---------
alabaster                          0.7.12
anaconda-client                    1.7.2
anaconda-navigator                 1.9.7
anaconda-project                   0.8.3
asn1crypto                         1.0.1
astroid                            2.3.1
astropy                            3.2.1
atomicwrites                       1.3.0
attrs                              19.2.0
Babel                              2.7.0
backcall                           0.1.0
backports.functools-lru-cache      1.5
backports.os                       0.1.1
backports.shutil-get-terminal-size 1.0.0
backports.tempfile                 1.0
backports.weakref                  1.0.post1
beautifulsoup4                     4.8.0
bitarray                           1.0.1
bkcharts                           0.2      
bleach                             3.1.0
bokeh                              1.3.4
boto                               2.49.0
Bottleneck                         1.2.1
certifi                            2019.9.11
cffi                               1.12.3
chardet                            3.0.4
Click                              7.0
cloudpickle                        1.2.2
clyent                             1.2.2
colorama                           0.4.1
comtypes                           1.1.7
conda                              4.7.12   
conda-build                        3.18.9
conda-package-handling             1.6.0
conda-verify                       3.4.2
contextlib2                        0.6.0
cryptography                       2.7
cycler                             0.10.0
Cython                             0.29.13
cytoolz                            0.10.0
dask                               2.5.2    
decorator                          4.4.0
defusedxml                         0.6.0
distributed                        2.5.2
docutils                           0.15.2
dolphindb                          1.30.19.4
entrypoints                        0.3
et-xmlfile                         1.0.1
fastcache                          1.1.0
filelock                           3.0.12   
Flask                              1.1.1
fsspec                             0.5.2
future                             0.17.1
gevent                             1.4.0
glob2                              0.7
greenlet                           0.4.15
h5py                               2.9.0
HeapDict                           1.0.1
html5lib                           1.0.1
idna                               2.8      
imageio                            2.6.0
imagesize                          1.1.0
importlib-metadata                 0.23
ipykernel                          5.1.2
ipython                            7.8.0
ipython-genutils                   0.2.0
ipywidgets                         7.5.1
isort                              4.3.21
itsdangerous                       1.1.0
jdcal                              1.4.1
jedi                               0.15.1   
Jinja2                             2.10.3
joblib                             0.13.2
json5                              0.8.5
jsonschema                         3.0.2
jupyter                            1.0.0
jupyter-client                     5.3.3
jupyter-console                    6.0.0
jupyter-core                       4.5.0
jupyterlab                         1.1.4    
jupyterlab-server                  1.0.6
keyring                            18.0.0
kiwisolver                         1.1.0
lazy-object-proxy                  1.4.2
libarchive-c                       2.8
llvmlite                           0.29.0
locket                             0.2.0
lxml                               4.4.1
MarkupSafe                         1.1.1    
matplotlib                         3.1.1
mccabe                             0.6.1
menuinst                           1.4.16
mistune                            0.8.4
mkl-fft                            1.0.14
mkl-random                         1.1.0
mkl-service                        2.3.0
mock                               3.0.5
more-itertools                     7.2.0
mpmath                             1.1.0    
msgpack                            0.6.1
multipledispatch                   0.6.0
navigator-updater                  0.2.1
nbconvert                          5.6.0
nbformat                           4.4.0
networkx                           2.3
nltk                               3.4.5
nose                               1.3.7
notebook                           6.0.1
numba                              0.45.1   
numexpr                            2.7.0
numpy                              1.19.3
numpydoc                           0.9.1
olefile                            0.46
openpyxl                           3.0.0
packaging                          19.2
pandas                             0.25.1
pandocfilters                      1.4.2    
parso                              0.5.1
partd                              1.0.0
path.py                            12.0.1
pathlib2                           2.3.5
patsy                              0.5.1
pep8                               1.7.1
pickleshare                        0.7.5
Pillow                             6.2.0
pip                                19.2.3
pkginfo                            1.5.0.1  
pluggy                             0.13.0
ply                                3.11
prometheus-client                  0.7.1
prompt-toolkit                     2.0.10
psutil                             5.6.3
py                                 1.8.0
pycodestyle                        2.5.0
pycosat                            0.6.3
pycparser                          2.19
pycrypto                           2.6.1    
pycurl                             7.43.0.3
pyflakes                           2.1.1
Pygments                           2.4.2
pylint                             2.4.2
pyodbc                             4.0.27
pyOpenSSL                          19.0.0
pyparsing                          2.4.2
pyreadline                         2.1
pyrsistent                         0.15.4
PySocks                            1.7.1    
pytest                             5.2.1
pytest-arraydiff                   0.3
pytest-astropy                     0.5.0
pytest-doctestplus                 0.4.0
pytest-openfiles                   0.4.0
pytest-remotedata                  0.3.2
python-dateutil                    2.8.0
pytz                               2019.3
PyWavelets                         1.0.3
pywin32                            223
pywinpty                           0.5.5    
PyYAML                             5.1.2
pyzmq                              18.1.0
QtAwesome                          0.6.0
qtconsole                          4.5.5
QtPy                               1.9.0
requests                           2.22.0
rope                               0.14.0
ruamel-yaml                        0.15.46  
scikit-image                       0.15.0
scikit-learn                       0.21.3
scipy                              1.3.1
seaborn                            0.9.0
Send2Trash                         1.5.0
setuptools                         41.4.0
simplegeneric                      0.8.1
singledispatch                     3.4.0.3
six                                1.12.0
snowballstemmer                    2.0.0
sortedcollections                  1.1.2    
sortedcontainers                   2.1.0
soupsieve                          1.9.3
Sphinx                             2.2.0
sphinxcontrib-applehelp            1.0.1
sphinxcontrib-devhelp              1.0.1
sphinxcontrib-htmlhelp             1.0.2
sphinxcontrib-jsmath               1.0.1
sphinxcontrib-qthelp               1.0.2    
sphinxcontrib-serializinghtml      1.1.3
sphinxcontrib-websupport           1.1.2
spyder                             3.3.6
spyder-kernels                     0.5.2
SQLAlchemy                         1.3.9
statsmodels                        0.10.1
sympy                              1.4
tables                             3.5.2
tblib                              1.4.0    
terminado                          0.8.2
testpath                           0.4.2
toolz                              0.10.0
tornado                            6.0.3
tqdm                               4.36.1
traitlets                          4.3.3
unicodecsv                         0.14.1
urllib3                            1.24.2
wcwidth                            0.1.7    
webencodings                       0.5.1
Werkzeug                           0.16.0
wheel                              0.33.6
widgetsnbextension                 3.5.1
win-inet-pton                      1.1.0
win-unicode-console                0.5
wincertstore                       0.2
wrapt                              1.11.2   
xlrd                               1.2.0
XlsxWriter                         1.2.1
xlwings                            0.15.10
xlwt                               1.3.0
zict                               1.0.0
zipp                               0.6.0
请先 登录 后评论

1 个回答

Junny

是版本兼容的问题,numpy和pandas的兼容度不够,推荐升级到numpy 1.19.5和pandas 1.3.5/1.1.0,两者版本不要相差太大。

例如可使用下面的命令升级numpy到1.21.5,pandas到1.3.5:

pip install --upgrade numpy==1.21.5
pip install --upgrade pandas==1.3.5
请先 登录 后评论