我正在使用sqlite3數據庫來存儲一些數據的項目。TypeError:翻譯期望的字符緩衝區對象
我的搜索功能使用的SQL語句:'''SELECT text FROM snippets WHERE title=?''', (whichName,)
和我的代碼是,whichName
進來的字典,它囊括此錯誤:
Traceback (most recent call last):
File "snippets.py", line 93, in <module>
main()
File "snippets.py", line 24, in main
get_value_from_name(response)
File "snippets.py", line 58, in get_value_from_name
(whichName,))
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.
因此,我想我需要它作爲一個字符串傳遞,所以我只是做了name = str(response)
將它轉換爲一個字符串,但這裏是問題開始的地方。它給了我這個:
[u'TEST'] <--- What is returned by the conversion to a string
None <--- What is returned by the search function
當我將字典轉換爲字符串。搜索功能然後返回None
,因爲它正在通過[u'TEST']
而不是TEST
像它應該一樣。所以,我添加了一些翻譯代碼:
translation_table = dict.fromkeys(map(ord, '(),'), None)
# Above code creates a table with the mapped characters
name = str(response)
name = name.translate(translation_table)
這是我目前的問題所在。它返回以下錯誤:
Traceback (most recent call last):
File "snippets.py", line 93, in <module>
main()
File "snippets.py", line 20, in main
name = name.translate(translation_table)
TypeError: expected a character buffer object
我看了一下這些問題:
Python TypeError: expected a character buffer object, personal misunderstanding - 並不適用於我的問題
expected buffer object error on string.translate - python 2.6 - 同樣不適用,因爲我的轉換表從字符串創建而不是字典
Getting error "expected character buffer object" and I don't know why - 也不適用因爲他正在試圖在索引上做到這一點。我試圖像它應該這樣做,找到/替換整個字符串。
但都不適用於我的問題(據我可以看到。)
有誰知道是什麼原因造成的類型錯誤?
謝謝!
很高興它的工作,但你知道爲什麼修復它嗎? – culix
@culix絕對不知道。這個項目不久之前,所以我不記得太多了。對不起:( –