我正在开发一个使用sqlite3数据库来存储一些数据的项目。
我的搜索功能使用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 - 也不适用,因为他试图在索引处执行此操作。我正在尝试这样做,在整个字符串中查找/替换。
但没有一个适用于我的问题(据我所见)。
有谁知道造成类型错误的原因是什么?
谢谢!
答案 0 :(得分:0)
我解决了这个问题。我在Python 3.3.2+中运行了代码并且它可以找到(虽然对转换表进行了一些小的调整)
对不起,如果我浪费了任何人的时间。我会尽快将其标记为答案。