python - mysql怎么插入字節(jié)型數(shù)據(jù)?
問(wèn)題描述
1.我通過(guò)python,向mysql插入類似b’x33x00x78xff’的數(shù)據(jù)。mysql的字段類型是varchar,插入之后發(fā)現(xiàn),數(shù)據(jù)少了轉(zhuǎn)義字符. 而且也不知道把數(shù)據(jù)重新讀出來(lái)后,怎么把它從字符串變回字節(jié)類型的數(shù)據(jù)。
sql = 'insert into myapp_userinfo (info) values ('%s')' % b’x01x00x00x00...’xx.execute(sql)...
2varchar類型被我穿成blob,然后嘗試?yán)^續(xù)插入,還是不行。
python讀回來(lái)的結(jié)果
我希望數(shù)據(jù)能夠原模原樣的寫(xiě)進(jìn)和讀出來(lái)剛接觸python和mysql,這個(gè)問(wèn)題弄了很久,有懂的人請(qǐng)回答下,謝謝!
問(wèn)題解答
回答1:可以試試把數(shù)據(jù)序列化后存入數(shù)據(jù)庫(kù),取的時(shí)候轉(zhuǎn)一次,這樣試試
回答2:跟問(wèn)主的數(shù)據(jù)庫(kù)編碼有關(guān)系,將所有的系統(tǒng)編碼改為utf-8就可以了
我的數(shù)據(jù)庫(kù)編碼如下:
mysql 不是有個(gè)專門用來(lái)存二進(jìn)制的數(shù)據(jù)類型嗎?BINARY和VARBINARY類型
回答4:可以考慮像密碼經(jīng)過(guò)AES加密成二進(jìn)制后經(jīng)過(guò)base64_encode轉(zhuǎn)成字符串存儲(chǔ)到密碼字段中,讀取時(shí)base64_decode解碼即可.
相關(guān)文章:
1. docker gitlab 如何git clone?2. docker鏡像push報(bào)錯(cuò)3. 關(guān)于docker下的nginx壓力測(cè)試4. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!5. angular.js使用$resource服務(wù)把數(shù)據(jù)存入mongodb的問(wèn)題。6. javascript - 怎么看網(wǎng)站用了什么技術(shù)框架?7. PC 手機(jī)兼容的 編輯器8. android - 項(xiàng)目時(shí)間長(zhǎng)了,字符串文件strings有的字符串可能是多余的,有沒(méi)有辦法快速檢測(cè)那些是沒(méi)用的?9. angular.js - angularJs ngRoute怎么在路由傳遞空字符串及用ng-switch取得10. mysql - 用PHPEXCEL將excel文件導(dǎo)入數(shù)據(jù)庫(kù)數(shù)據(jù)5000+條,本地?cái)?shù)據(jù)庫(kù)正常,線上只導(dǎo)入15條,沒(méi)有報(bào)錯(cuò),哪里的問(wèn)題?
