Файлы, загруженные в Dropbox через API, являются двоичными - PullRequest
0 голосов
/ 11 апреля 2019

Я использую проект dropbox 9.3.0 для Python 3 (https://pypi.org/project/dropbox/

Я могу загрузить / загрузить код в Dropbox (для бизнеса), но файлы поступают в двоичном формате и не являются JSON в самом Dropbox.

т.е. содержимое сохраненного файла JSON содержит 1111011 100010 1101101 1100001 1101010 1101111 1110010 1010000 1100001 1 ...

Мой код выглядит следующим образом:

def dict_to_binary(the_dict):
    str = json.dumps(the_dict)
    binary = ' '.join(format(ord(letter), 'b') for letter in str).encode("utf-8")
    return binary


def initialise_dropbox():
    dbx = dropbox.Dropbox(dropbox_access_token, headers={'Content-type': 
'application/json'})
    return dbx

def push_to_dropbox(file_object,dropbox_base_url,sub_folder,file_name,file_type,dbx,file_object_summary_str=''):
    if file_type == 'json':
        # or else dropbox complains, e.g. TypeError: expected request_binary as binary type
        binary = dict_to_binary(file_object)

    full_dbx_path = os.path.join(dropbox_base_url,sub_folder,file_name+'.'+file_type)
   dbx.files_upload(binary,full_dbx_path,mode=dropbox.files.WriteMode.overwrite)

Это соответствующая документация Dropbox - https://dropbox -sdk-python.readthedocs.io / en / latest / api / dropbox.html # dropbox.dropbox.Dropbox.files_upload - I ' Я просто запутался в том, что я делаю неправильно.

Мне нужно иметь возможность загрузить файл, который в Dropbox является допустимым JSON.

...