python - Numpy-recarray,C#结构化数据

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

我在读取 C# 例程中得到以下字符串。这是一长串(7,000 条记录)股票报价(日期、开盘价、最高价、最低价、收盘价)。没有回车,没有换行。

[(datetime.date(2020, 6, 1), 29.80, 30.65, 29.45, 30.24), (datetime.date(2020, 6, 2), 30.49, 31.43, 30.19, 31.17)...]

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

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

最佳答案

你可能会对 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 savetxt 可以更有效地与这样的结构化数组一起使用。

https://stackoverflow.com/questions/62493970/

相关文章:

c# - SSIS - 文件存在性检查未正确控制包任务流

swift - Xcode 预览不适用于通用 View

reactjs - 使用 enzyme 设置 redux 连接的 react 组件的状态

c# - 在延续中使用一个对象,确保它在你需要它之​​前不会被释放

react-native - 如何使用 RNFetchBlob.fetch 和 react-nati

visual-studio-code - VS Code 中的 Prettier 不断突破界限

mysql - 使用python中的线程在Mysql上同时运行多个查询

.net - PubSub 上的 Http 400 推送到云运行

php - 模拟 Laravel 缓存助手

javascript - 如何使 React 组件更可重用?