Python Win32Clipboard.GetClipboardData-格式化

Python Win32Clipboard.GetClipboardData-格式化,python,pywin32,Python,Pywin32,我有以下代码从剪贴板读取数据并将其添加到数据库: import win32clipboard, sqlite3 try: win32clipboard.OpenClipboard() data = win32clipboard.GetClipboardData() win32clipboard.CloseClipboard() print data[0] # testing print data[1] # testing test = ''

我有以下代码从剪贴板读取数据并将其添加到数据库:

    import win32clipboard, sqlite3
try:
    win32clipboard.OpenClipboard()
    data = win32clipboard.GetClipboardData()
    win32clipboard.CloseClipboard()
    print data[0] # testing
    print data[1] # testing
    test = ''.join(data)
    print test

    conn = sqlite3.connect('DB')
    cur = conn.cursor()
    cur.execute('INSERT INTO Clipboard (Data) VALUES (?)', (test))
    conn.commit()
    conn.close()


except TypeError as e:
    pass
    print e
例如,剪贴板数据是stackoverflow。 收到以下错误:

 s
Traceback (most recent call last):
t
stackoverflow
  File "clipboard.py", line 13, in <module>
    cur.execute('INSERT INTO Clipboard (Data) VALUES (?)', (test))
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 1, and there are 13 supplied.  
我假设数据的输出是在元组或列表中。因此,我尝试以多种方式连接这些值,上面的连接仅代表测试的一种方式。
任何帮助都将不胜感激

参数列表必须是一个序列。 您发送string-sqlite,将其作为字母序列读取。
只需添加逗号测试,即可发送包含一个元素的元组或使用列表[test]。

Ah完美。谢谢你能给我一个简短的概述,为什么这需要发生,或者什么搜索词将是最好的研究我自己?只要看看元组,就会带来很多麻烦!!!元组就像一个列表。只有两个区别:元组是不可变的,需要的内存比列表少。列表用方括号表示,元组用圆括号表示。元组末尾带有一个元素的逗号用于理解哪里是元组,哪里只是逻辑括号。