我使用PIL读取图像的像素图,然后将地图作为字符串存储在Postgre数据库VARCHAR列上。我想从我的Python脚本再次读取该数据库VARCHAR字符串并将其转换为我使用pix=im.load()
时获得的相同像素映射对象,以便我可以像这样解析:
读取数据库字符串后我想要的结果,例如
mypixmap[0][0] = 255 mypixmap[1][0] = 255
mypixmap[0][1] = 154 mypixmap[1][1] = 0
mypixmap[0][2] = 120 mypixmap[1][1] = 30
mypixmap[0][3] = 100 mypixmap[1][1] = 255
依旧......
如果使用print(mypixmap)
完全打印元组列表会导致这样的事情:
[(65, 65, 65, 255)(49, 49, 49, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(254, 254, 254, 255)(254, 254, 254, 255)(254, 254, 254, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(168, 168, 168, 255)(133, 133, 133, 255)(255, 255, 255, 255)]
但在这种情况下print(mypixmap[0][0])
会给65
没有任何括号,因为它将检索第一个整数。
我知道Postgre驱动程序和SQL所以我只需要一种方法将对象存储到数据库中(也许VARCHAR不好?)并将其恢复原状。
我希望很清楚,如果我没有使用正确的条款,我很抱歉,但我仍然在学习Python的第一步。
答案 0 :(得分:1)
我通过将映射转换为字符串和.remove()
所有不是字节八位字节的字符来计算我的代码。当我将此字符串存储到VARCHAR列时,我可以将其取回,再次删除除八位字节之外的所有内容,然后使用带有索引[]的字符串来解析八位字节。