假設我有以下兩行:在python轉換的HTML頁面,以二進制格式
c=urllib2.urlopen(myUrl)
html=c.read()
我是很新的Python和正在尋找一種方式來改變存儲在html
的HTML代碼的二進制所以我可以輕鬆地存儲在我的MongoDB中,而不用擔心我下載的網頁的編碼。
對此提出建議?
假設我有以下兩行:在python轉換的HTML頁面,以二進制格式
c=urllib2.urlopen(myUrl)
html=c.read()
我是很新的Python和正在尋找一種方式來改變存儲在html
的HTML代碼的二進制所以我可以輕鬆地存儲在我的MongoDB中,而不用擔心我下載的網頁的編碼。
對此提出建議?
pymongo驅動程序已經具有將二進制字符串導入的方法。這個例子如下:
import pymongo
import bson.binary
from pymonngo import MongoClient
from bson.binary import Binary
client = MongoClient()
db = client.test
db.btest.insert({ "bindata": Binary("Hello",0) })
db.btest.find_one()
它給你:
{u'_id': ObjectId('5582b33c268e1505371a5477'), u'bindata': Binary('Hello', 0)}
還是從mongo
外殼:
> db.btest.findOne()
{
"_id" : ObjectId("5582b33c268e1505371a5477"),
"bindata" : BinData(0,"SGVsbG8=")
}
所以你的字符串被編碼到BSON二進制類型現在在你的文件。
請注意,它總是編碼字節,而不是原始的,因爲這是BSON規範如何做。
至於我記得
c.read()
是一個正常的字符串(打我,如果我錯了)
如果多數民衆贊成的情況下,這會幫助你:
http://code.activestate.com/recipes/578291-string-to-binary/
這很完美。謝謝! – user2980055