【发布时间】:2020-07-21 10:05:23
【问题描述】:
我拥有数千家不同公司的财务报表数据。有些公司只有 2019 年的数据,但有些公司有长达十年的数据。每个公司的财务报表都有自己的表格,其结构如下,其中的列以粗体显示:
lineitem---2019---2018---2017
2............1000....800......600
3206...........700....300....-200
56........50....100........100
200............1200......90......700
这种结构比 lineitem-year-amount 等平面文件结构更受欢迎,因为一个查询为我提供了财务报表表输出的正确结构。 lineitem 是一个外键,链接到具有超过 10,000 条记录的映射表的主键。例如,3206 可以表示“债转贷机构”。我还有一个 companyIndex 表,其中包含公司 ID、公司名称和表名。我能够将数据导入数据库并在 python 中使用 sqlite3 进行查询,但高级查询有时会有些挑战,更不用说它可能需要很多时间并且可读性不强。我喜欢在 Django 或 SQLAlchemy 中使用 ORM 的潜力。 SQLAlchemy 中的 ORM 似乎希望我知道要创建的表的名称,并希望我知道要创建多少列,但我不知道,因为我有一个脚本可以解析 csv 中的数据转储包括公司 ID 和运营年数的财务报表数据。此外,一年后,我将不得不用另外一年的数据更新表格。
我一直在观看和阅读 Django 和 SQLAlchemy 教程,但由于这个初始问题是我项目成功的先决条件,因此无法在实践中尝试太多。我用谷歌搜索和搜索,并检查了 stackoverflow 的解决方案,但没有找到任何已解决的问题(这真的很令人惊讶,因为我总是在这里找到解决方案)。
那么,鉴于我打算让它适合的结构,我如何使用 Django/SQLAlchemy 插入数据?如何让选定的表(基于公司 ID 或公司名称)成为 ORM 中的一个对象,就像任何其他允许我在我想要的粒度级别上选择我想要的数据的对象一样? 理想情况下,在 Django 中有一个解决方案,但由于我没有找到任何我怀疑没有的东西,或者我构建数据库的方式是疯狂的。
【问题讨论】:
-
...顺便说一句,欢迎来到 StackOverflow!
-
由于您是新来的,请花点时间阅读帮助中心,特别是 How do I ask a good question 和 How to create a MRE。考虑到该信息以解决未来的问题。我认为您的问题没有问题,但在阅读帮助后您会明白,按照规则,这有点边界。与规则风格截然不同的问题可能会被某些人否决。
-
我的意思是这里的大多数问题都显示了一个小代码 sn-p 您尝试过但无法正常工作,并寻求帮助以使其正常工作。没有比这更严重的了。
标签: python django sqlite orm sqlalchemy