1

Here's my code:

import sqlite3
from pathlib import WindowsPath

#Create database
conn = sqlite3.connect('file_path.db')
cursor = conn.cursor()

cursor.execute('''
    CREATE TABLE IF NOT EXISTS paths (
        id INTEGER PRIMARY KEY,
        file_path TEXT NOT NULL
    )
''')

cursor.execute('SELECT * FROM paths WHERE id = 1')

#Read input
input_path = input('enter file path: ')
path = WindowsPath(input_path.replace('"', ''))


#insert path
cursor.execute('INSERT INTO paths (id, file_path) VALUES (1, ?)', (path,))

conn.commit()

With the input something like:

enter file path: C:\Users\User\File

The following error pops up:

    cursor.execute('INSERT INTO paths (id, file_path) VALUES (1, ?)', (path,))
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.

Anyone know how to resolve this? The end goal is to store this file path into the database so I can use it later on.

1 Answer 1

0

The problem isn't that it is a file path the problem is that it is a WindowsPath. sqlite is expecting a string and instead it is getting and object of type WindowsPath and doesn't know what to do with it, hence the error.

Simply wrapping path in a str will solve your issue.

Example:

cursor.execute('INSERT INTO paths (id, file_path) VALUES (1, ?)', (str(path),))
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.