Numpyrecarray,C#结构化数据

2024-06-16 12:18:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我用C语言编写了一个数据使用者,它从python API脚本中读取字符串数据。到目前为止,我发现的最佳执行方法是将数据放入python中的numpy-recarray,将其打印到控制台并使用StreamReader读取

在读取C#例程中,我以以下字符串结束。这是股票报价的一个长字符串(7000条记录)(日期、开盘、高位、低位、收盘)。没有回车,没有换行

[(日期时间日期(2020,6,1)、29.80、30.65、29.45、30.24),(日期时间日期(2020,6,2)、30.49、31.43、30.19、31.17)…]

我现在需要以某种方式将其解析为可以轻松用于将这些数据插入SQL数据库的内容。我知道如何从列表、数组等进行插入。我可以看到一个蛮力解析路由,它逐个字符地读取该字符,并将记录重建到列表中。那么SQL批量插入就很容易了

我觉得可能有更好的方法来改变python控制台编写器,以一种可以转换为C#中列表的格式编写这个长字符串,并使用Linq或其他赋值。我有点不知道从哪里开始。有什么建议吗


Tags: 数据方法字符串numpy脚本api列表sql
1条回答
网友
1楼 · 发布于 2024-06-16 12:18:31

您可能会更高兴使用pandas生成的csv

粗略地看一下元组列表:

In [25]: alist = [(datetime.date(2020, 6, 1), 29.80, 30.65, 29.45, 30.24), (date
    ...: time.date(2020, 6, 2), 30.49, 31.43, 30.19, 31.17)]                    
In [26]: alist                                                                  
Out[26]: 
[(datetime.date(2020, 6, 1), 29.8, 30.65, 29.45, 30.24),
 (datetime.date(2020, 6, 2), 30.49, 31.43, 30.19, 31.17)]

In [28]: import pandas as pd                                                    
In [29]: df=pd.DataFrame(alist)                                                 
In [30]: df                                                                     
Out[30]: 
            0      1      2      3      4
0  2020-06-01  29.80  30.65  29.45  30.24
1  2020-06-02  30.49  31.43  30.19  31.17
In [31]: df.to_csv('test.csv')                                                  
In [32]: cat test.csv                                                           
,0,1,2,3,4
0,2020-06-01,29.8,30.65,29.45,30.24
1,2020-06-02,30.49,31.43,30.19,31.17

您可以使用或不使用列标题和行索引来优化该输出

还有一个numpy{}对于这样的结构化数组,可能需要做更多的工作

相关问题 更多 >