TypeError: Невозможно неявно преобразовать объект 'bytes' в str при создании сегмента с помощью подключаемого модуля клиентской библиотеки boto - PullRequest
0 голосов
/ 14 февраля 2020

Плагин клиентской библиотеки Boto

Этот код используется для создания корзины, но я не смог

import boto  
import time

# URI scheme for Cloud Storage. 
GOOGLE_STORAGE = 'gs'
# URI scheme for accessing local files. 
LOCAL_FILE = 'file'

now = time.time()

CATS_BUCKET = 'cats-%d' % now 
DOGS_BUCKET = 'dogs-%d' % now

print(CATS_BUCKET) 
print(DOGS_BUCKET)

for name in (CATS_BUCKET, DOGS_BUCKET):
    # Instantiate a BucketStorageUri object.
    uri = boto.storage_uri(name, GOOGLE_STORAGE)
    # create bucket
    try:
        uri.create_bucket()
        print("Successfully created bucket {}".format(name))
    except boto.exception.StorageCreateError as e:
        print("Failed to create bucket: ", e)

Я настроил файл .boto и когда я запускаю это, я получаю сообщение об ошибке типа

path = '/' + bucket

TypeError: Невозможно неявно преобразовать объект 'bytes' в str

1 Ответ

0 голосов
/ 17 февраля 2020

Вы можете попытаться декодировать uri перед его использованием:

uri.decode('utf-8')

Или вы можете прочитать его уже как utf-8 с самого начала, например:

with open(file_path, encoding='utf-8') as file:
  uri = file.read()

Честно говоря, я думаю, что этот вопрос связан с кодировкой. Если мое предложение не работает, дайте мне знать, и я посмотрю в этом направлении.

РЕДАКТИРОВАТЬ:

Вы также можете попробовать получить объект "uri", например это:

 uri = boto.storage_uri("%s/%s" % (BUCKET_NAME, DOWNLOAD_PATH), 'gs')
...