我必须从Excel文件中导入数据到数据库中。这些文件的结构与模型的结构不匹配,所以我想我需要做一些数据操作来相应地排列元组。
我必须导入的文件如下所示:
django-model具有以下属性:国家、商品、年份、值
那么,读取数据、以正确的结构排列数据并将其导入数据库(最好是自动更新现有元组)的最佳方法是什么呢?
我花了很多时间研究现有的python和django库(如PyExcel,Pandas,Django-Excel,Django-Import-Export),但我无法真正找到哪个是最好的,以及它是否支持在导入之前重新排列数据。
我希望你能给予我一些建议和解决这个问题的方法。
2条答案
按热度按时间dfty9e191#
好吧,有几件事。注意我不是其中任何一件的Maven。
首先,如果你的数据是一个Excel文件,它是结构化的。表的本质是结构化的数据。非结构化的数据可能是一个文本文件或文本文件的目录。
第二,请阅读这篇文章,并在制定问题时遵循它:https://stackoverflow.com/help/mcve
第三,SO并不是为你写所有的代码。根据你的问题,你还没有尝试任何东西,这就是为什么你的问题被否决了。
除了序言,您可以使用Python的pandas库导入Excel文件,操作它们,并将它们上传到SQL数据库。
输入:
输出:
如果您有许多Excel文件,则可以使用
glob
或os.walk
遍历/遍历目录,并导入部分或全部Excel文件。您可以使用pandas
DataFrame.to_sql
将数据上传到SQL数据库,这需要定义数据库连接(服务器地址,登录/pw等)。vltsax252#
这是一个带有一个外键的插入示例。
你需要创建一个modelResource和覆盖before_import_row来插入table1中的数据。你可以改变字段的名称,创建表和自定义。'column_name'是excel数据中字段的名称,attribute是数据库中字段的名称。在方法nefore_import中你可以插入数据到表中并指定外键。
并将ModelResource设置为admin class。
就这些了