kir*_*hey 1 python java mysql binary byte
我知道,如果我想出这个或者有人告诉我,那将是一个额头拍。在发布任何问题之前,我会尝试至少三个小时并进行大量搜索。有一些提示很接近,但是我采用/尝试过的任何方法似乎都没有用。
我正在从Java中获取一个byte [],然后使用Flask通过JSON(与Gson)将其传递给python JSON。收到时,此byte []作为整数列表存储在python对象中,但是现在我需要将其发送到MySQLdb并将其存储为blob。数据内容是二进制文件数据。
如何将python整数列表[1,2,-3,-143 ....]转换为可以存储在MySQL中的内容?我已经尝试过bytearray()和array.array(),但是当我直接从对象访问列表并尝试将其转换为字符串以存储MySQLdb时,这些命令令人窒息。
任何链接或提示,我们将不胜感激。
您可以将其连接为一个字节字符串(只是python 2.x下的字符串)。如果不是最有效的话,最简单的方法就是修改数据,然后转换为chars并加入。就像是:
data = [1,2,-3,-143, ...]
binData = ''.join(map(lambda x: chr(x % 256), data))
Run Code Online (Sandbox Code Playgroud)
binData = ''.join(map(lambda x: chr(x % 256), attach.attcoll))
sql_stmt = """INSERT INTO attachments (attno,filename,fileextension,projNo,procNo,wpattachment) \
VALUES ('%s','%s','%s','%s','%s','%s') ON DUPLICATE KEY UPDATE filename='%s',fileextension='%s'""" % (attach.attno,\
attach.filename,attach.fileextension,attach.projNo,attach.procNo,binData,attach.filename,attach.fileextension)
try:
cursor.execute(sql_stmt)
conn.commit()
cursor.close()
conn.close()
return 'SUCCESS'
except MySQLdb.Error:
cursor.close()
conn.close()
print "My SQL cursor execute error."
return 'FAILURE'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4507 次 |
| 最近记录: |