av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

python - sqlalchemy更新數據報錯

瀏覽:95日期:2022-08-12 16:39:16

問題描述

這是我的更新代碼

def alter(self,id,key,value):session = Goods().getsession()session.query(Goods).filter(Goods.id==id).update({key:value})session.close()

但是會報錯

UnicodeEncodeError: ’latin-1’ codec can’t encode characters in position 0-1: ordinal not in range(256)

最新查錯。打印如下

print type(id),type(key),type(value)

<type ’unicode’> <type ’unicode’> <type ’unicode’>127.0.0.1 - - [31/Mar/2017 06:32:05] 'GET /alter?id=1497&key=name&value=%E8%8D%A3%E8%80%80V9+%E6%89%8B%E6%9C%BA+%E9%93%82%E5%85%89%E9%87%91+%E5%85%A8%E7%BD%91%E9%80%9A4G(4G+RAM%2B64G+ROM)%E6%A0%87%E9%85%8D HTTP/1.1' 200 -

初步發現問題所在 數據庫為latin1編碼

然后封裝json的時候UnicodeDecodeError: ’utf8’ codec can’t decode bytes in position 90-91: unexpected end of data

代碼

def get(self):

session = Goods().getsession() goodslist = session.query(Goods) session.close() data = [] for goods in goodslist:tmp = {}tmp[’id’] = goods.idtmp[’name’] = goods.name //這里報錯根源 帶空格tmp[’link’] = goods.linktmp[’price’] = goods.pricetmp[’commit’] = goods.commitdata.append(tmp) jsondata = json.dumps(data) //這里報錯

問題解答

回答1:

沒怎么寫過,但是猜測一下

1. 確認你的key和value都不為None2. 更新不用commit么

明顯是數據庫字符集設置有問題,請設置數據庫字符集為UTF-8

如果不想設置數據庫,就解碼待插入的數據 info_str.encode(’你的格式’)再插入

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 日韩成人高清在线 | 欧美啊v在线观看 | 亚洲五码久久 | 欧美xxxx色视频在线观看免费 | 在线播放中文字幕 | 日本啊v在线 | 久久国产综合 | 精品视频一二区 | 三级视频网站 | 中文字幕乱码亚洲精品一区 | 一本一道久久a久久精品综合蜜臀 | 色橹橹欧美在线观看视频高清 | 国产性网| 国产一级淫片免费视频 | 欧洲高清转码区一二区 | 国产视频2021| 国产精品久久久久无码av | 国产欧美精品区一区二区三区 | 中午字幕在线观看 | 亚洲国产激情 | 日韩在线国产 | 天天色天天色 | 免费影视在线观看 | 男女羞羞的网站 | 国产精品九九九 | 国产一区二区三区亚洲 | 久久久久久蜜桃一区二区 | 国产在线一区二区 | 四虎在线视频 | 国产欧美在线播放 | 中文字幕国产视频 | 国产一区二区视频在线 | 免费一级欧美在线观看视频 | 国产精品久久久久久久久久 | 狠狠色香婷婷久久亚洲精品 | 日韩国产中文字幕 | 国产专区在线 | 黄免费在线 | 色男人天堂av | 男女羞羞视频大全 | 欧美激情第一区 |