如何在mySQL中保存SVG图像(来自Python 3.6)

如何在mySQL中保存SVG图像(来自Python 3.6),python,mysql,svg,sqlalchemy,Python,Mysql,Svg,Sqlalchemy,如何在mySQL表中保存大型SVG图像? 我的问题是,我的SVG最多有200000个符号,这似乎太多,无法将它们保存在我的表中。 在尝试将Python保存为文本时(使用Python 3.6和Anaconda),Python/sqlalchemy告诉我以下内容: sqlalchemy.exc.DataError:(pymysql.err.DataError)(1406,“第27行‘cantons_svg’列的数据太长”)[SQL:‘插入……] 我今天在尝试将视频存储到tidb时遇到了这个问题。我使

如何在mySQL表中保存大型SVG图像? 我的问题是,我的SVG最多有200000个符号,这似乎太多,无法将它们保存在我的表中。 在尝试将Python保存为文本时(使用Python 3.6和Anaconda),Python/sqlalchemy告诉我以下内容:

sqlalchemy.exc.DataError:(pymysql.err.DataError)(1406,“第27行‘cantons_svg’列的数据太长”)[SQL:‘插入……]


我今天在尝试将视频存储到tidb时遇到了这个问题。我使用flask作为后端框架,使用sqlalchemy作为ORM,通过mysql python连接器连接到数据库。 日志如下:

sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'video' at row 1")
[SQL: INSERT INTO videos (user_id, token_id, video) VALUES (%(user_id)s, %(token_id)s, %(video)s)]
我发现关于这种情况几乎没有什么建议,其中一个建议我看看sqlalchemy中是否有自定义的存储类型。这似乎很复杂。(如果有人找到一个医生或什么东西,提供了明确的指导,请告诉我)

至于我,我只是使用BLOB类型的sqlalchemy来初始化数据库。和使用

alter  table videos modify  column video  LongBlob DEFAULT NULL ;

通常更改列类型。这对我来说很好。

您的专栏是什么数据类型的
cantons\u svg
?它是文本。对不起,我忘了提到这个。你试过将它设置为BLOB类型吗?是的,我将mySQL字段的数据类型设置为“BLOB”和“LONGTEXT”,但这似乎没有起作用。我应该注意到,我首先将大的SVG字符串放入pandas数据框(工作正常),然后尝试使用:df.to_sql('df',con=engine,if_exists='replace')保存该数据框。
if_exists='replace'
每次都会替换该表,因此即使您在MySQL中
更改表
,to_sql也会覆盖该数据框。您需要在
to_sql
中指定
dtype