相信編碼問題困擾了不少coder,最近遇到的一些坑分享給大家。

文圣網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)自2013年創(chuàng)立以來到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)。
1、通用方法 :decode對應的編碼
>>> b"abcde"
b'abcde'
# utf-8 is used here because it is a very common encoding, but you
# need to use the encoding your data is actually in.
>>> b"abcde".decode("utf-8")
'abcde'2、正反編碼:encode完了decode
import urllib.request#urlurl="http://www.baidu.com/"#請求request = urllib.request.Request(url)#爬取結果response = urllib.request.urlopen(request)
s = response.read()
s=s.decode('utf-8')
s=s.encode('gbk','ignore').decode('gbk');
print(s)
input('...')3、文件流的方式
針對文件的存儲,如圖片、音樂,需要以文件為載體作為讀寫
def read_file(filename): with open(filename, 'rb') as f: photo = f.read() return photo
4、Binary/LargeBinary/BLOB 字節(jié)流類讀寫
這個時候就要用到我們的終極武器,pickle模塊。以上的方法針對特殊字符的字符串格式的讀取是invalid byte。
insert = self.jobs_t.insert().values(**{
'id': job.id,
'next_run_time': datetime_to_utc_timestamp(job.next_run_time),
'job_state': pickle.dumps(job.__getstate__(), self.pickle_protocol) # write
})
res[APSchedulerJob.id] = {'next_run_time': APSchedulerJob.next_run_time, 'job_state': str(pickle.loads(APSchedulerJob.job_state)), } # read
結果:
{
"dbintobalant": {
"job_state": "{'version': 1, 'id': 'dbintobalant', 'func': 'app.main.views:db_balant', 'trigger': <CronTrigger (day_of_week='mon-sun', hour='*', minute='*/4', second='0', timezone='Asia/Shanghai')>, 'executor': 'default', 'args': (), 'kwargs': {}, 'name': 'dbintobalant', 'misfire_grace_time': 1, 'coalesce': False, 'max_instances': 5, 'next_run_time': datetime.datetime(2018, 6, 22, 14, 8, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)}",
"next_run_time": 1529647680.0
},
"hwintobalant": {
"job_state": "{'version': 1, 'id': 'hwintobalant', 'func': 'app.main.views:hw_balant', 'trigger': <CronTrigger (day_of_week='mon-sun', hour='*', minute='*/3', second='0', timezone='Asia/Shanghai')>, 'executor': 'default', 'args': (), 'kwargs': {}, 'name': 'hwintobalant', 'misfire_grace_time': 1, 'coalesce': False, 'max_instances': 5, 'next_run_time': datetime.datetime(2018, 6, 22, 14, 9, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)}",
"next_run_time": 1529647740.0
},
"mwintobalant": {
"job_state": "{'version': 1, 'id': 'mwintobalant', 'func': 'app.main.views:mw_balant', 'trigger': <CronTrigger (day_of_week='mon-sun', hour='*', minute='*/2', second='0', timezone='Asia/Shanghai')>, 'executor': 'default', 'args': (), 'kwargs': {}, 'name': 'mwintobalant', 'misfire_grace_time': 1, 'coalesce': False, 'max_instances': 5, 'next_run_time': datetime.datetime(2018, 6, 22, 14, 8, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)}",
"next_run_time": 1529647680.0
}
}如有其他好的方法,歡迎交流。
分享文章:pythonBinarytoStr編碼格式化問題
標題路徑:http://chinadenli.net/article18/jigggp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站收錄、小程序開發(fā)、微信小程序、網(wǎng)站建設、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)