在 MySQL 数据库中保存 Python 数组

Saving Python Array in MySQL db

我有一个数组 fn_arr,我想将它保存到我的数据库中的一个字段中。字段数据类型是文本,但我可以根据需要更改它。一些在线阅读似乎建议我应该 pickle 数组然后将其保存到字段中,但是 pickle dump 将其转换为字节字符串。我想这就是我收到错误的原因:

pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'b'\x80\x03]q\x00(K\x02K\x03K\x04K\x05K\x06K\x07K\x08K\x0ce.'

将数组保存在 MySQL 数据库中的最佳方法是什么?我的字段应该是什么数据类型,我应该选择特定的排序规则(目前 latin1_swedish_ci)?

import pickle 

fn_arr = [2,3,4,5,6,7,8,12]
fn_pickle = pickle.dumps(fn_arr)
insert = "insert into signature (signature) values (%s)"%(fn_pickle)
cur.execute(insert)

您可以使用 json 将数据存储在 TEXT 列中,blob 更适合字节

import json
fn_arr = [2,3,4,5,6,7,8,12]
testjson =  json.dumps(fn_arr)
insert = "insert into signature (signature) values (%s)"
cur.execute(insert,(testjson ,)