在使用pycassa在cassandra中插入數據時遇到問題編碼問題。字段名稱是「文本」,內容是鳴叫,可以有非ASCII字符。我試圖使用編碼('UTF-8')文本字段進行編碼,它顯示,從'unicode'轉換爲'str'但仍然失敗?確切的錯誤是在這裏,python pycassa編碼問題
-'ascii' codec can't encode character u'\xbf' in position 0: ordinal not in range(128).
-'ascii' codec can't encode character u'\2026' in position 139: ordinal not in range(128).
編輯1:場,這是在卡桑德拉失敗,沒有默認驗證類型已被定義?這可能是一個問題嗎?如果沒有指定type,cassandra會如何存儲它?
編輯2:這回答編輯1只是注意到了一些事情,它失敗的領域沒有默認類型定義和按文檔,cassandra將嘗試將其存儲爲十六進制字節數組(ByteType),因爲我試圖插入UTF-8編碼的字符串,這可能是一個問題嗎?
回溯:
回溯(最近通話最後一個):文件 「/opt/socialflow/prod/api-reporting/api-reporting/CassFH/app/c.py」,第40行,在發送增變.send(self,* a,** kw)文件「/usr/local/lib/python2.6/dist-packages/pycassa/batch.py」,第126行,發送allow_retries = self.allow_retries)
文件「/usr/local/lib/python2.6/dist-packages/pycassa/pool.py」,第124行,在new_f result = f(self,* args,** kwargs)中
文件「/ usr/local_lib/python2.6/dist-packages/pycassa/cassandra/Cassandra.py「,第1005行,在batch_mutate self.send_batch_mutate(mutation_map,consistency_level)
文件「/usr/local/lib/python2.6/dist-packages/pycassa/cassandra/Cassandra.py」,第1013行,在send_batch_mutate args.write(self._oprot)
文件「/ usr/local/lib/python2.6/dist-packages/pycassa/cassandra/Cassandra.py「,第5200行,寫入oprot.trans.write(fastbinary.encode_binary(self,(self。 0)Unicode編碼錯誤:'ascii'編解碼器無法編碼字符u'\ xbf'在位置0:序號不在範圍內(128)[2013-05-20 21:31:14,450]根關鍵: