Do you have an idea for Dropbox Paper? Share it with us!

Incorrect type expected on upload [ Python ]

New member | Level 2

So Im trying to upload some multiple files using API, but in the end I just getting

dropbox.stone_validators.ValidationError: '<_io.BufferedReader name='./image_01.jpg'>' expected to be a string, got BufferedReader

My code: 

def image_uploader(filename):

    filename_lower = filename.lower()

    for ignored_file in IGNORED_FILES:
        if ignored_file in filename_lower:
            return True

    return False

local_dir = '.'
dbx_token = dropbox.Dropbox('MY_API_TOKEN')

for root, dirs, files in os.walk(local_dir):

    for file_name in files:
        if image_uploader(file_name):

        local_path = os.path.join(root, file_name)
        relative_path = os.path.relpath(local_path, local_dir)
        dropbox_path = os.path.join('/Apps/face_db_upload', relative_path)

        with open(local_path, 'rb') as f:
            dbx_token.files_upload(dropbox_path, f)


1 Reply

Re: Incorrect type expected on upload [ Python ]


The files_upload method expects a string, but you're passing in a file object. You'll need to update your code to pass in a string, e.g., try passing in `` instead of `f`.

Developer & API Discussions

Have a question? Our Dropbox Community is here to help you find an answer!
You won’t have to wait too long for a reply, but why not learn more about the Community while you’re here.

Not the right discussion for you? Find out what else our Community has to say about Developer & API Discussions.

Or, search our Help Center for even more.

Who's talking
Top contributors to this post