2013-12-22 72 views
1

我正在使用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 

我看了一下這些問題:

但都不適用於我的問題(據我可以看到。)

有誰知道是什麼原因造成的類型錯誤?

謝謝!

回答

0

我解決了這個問題。我在Python 3.3.2+中運行代碼,它可以找到(儘管對轉換表進行了一些小調整)

對不起,如果我浪費了任何人的時間。我會盡快將其標記爲答案。

+0

很高興它的工作,但你知道爲什麼修復它嗎? – culix

+0

@culix絕對不知道。這個項目不久之前,所以我不記得太多了。對不起:( –

相關問題