我正在尝试在 azure 上的 blob 中输入多个值。
我有四个值要输入到 blob 中。
firstname
lastname
address
contact
所以我写了这样的代码:
from azure.storage.blob import BlockBlobService
from azure.storage.blob import PublicAccess
firstName = u'john'
lastName = u'doe'
address = u'new york'
contact = u'2222222222'
block_blob_service = BlockBlobService(account_name='myAccountName', account_key='myAccountkey')
block_blob_service.create_container('mycontainer')
block_blob_service.create_blob_from_text('mycontainer','myblockblob',[firstName,lastName,address,contact])
但我收到以下错误:
'list' object has no attribute 'encode'
完整错误:
Django Version: 1.8
Exception Type: AttributeError
Exception Value:
'list' object has no attribute 'encode'
Exception Location: D:\home\site\wwwroot\env\Lib\site-
packages\azure\storage\blob\blockblobservice.py in create_blob_from_text,
line 773
Python Executable: D:\Python27\python.exe
Python Version: 2.7.8
Python Path:
[u'D:\\home\\site\\wwwroot\\env\\Lib\\site-packages',
'.',
'D:\\Windows\\SYSTEM32\\python27.zip',
'D:\\Python27\\DLLs',
'D:\\Python27\\lib',
'D:\\Python27\\lib\\plat-win',
'D:\\Python27\\lib\\lib-tk',
'D:\\Python27',
'D:\\Python27\\lib\\site-packages',
'D:\\home\\site\\wwwroot']
Server time: Wed, 15 Nov 2017 21:43:33 +0000
有什么方法可以在我的 blob 中获取这些值。
最佳答案
您需要给出BlockBlobService.create_blob_from_text
一个字符串。例如,您可以使用:
my_list = [firstName, lastName, address, contact]
block_blob_service.create_blob_from_text('mycontainer', 'myblockblob', ','.join(my_list))
从列表中创建一个以逗号分隔的值字符串,然后从中创建一个 blob。
或者,按照评论中的建议,将数据序列化为 pickle 或 JSON,然后使用 create_blob_from_bytes
。
关于python - 在 azure 上的 blob 中存储值列表时,“list”对象没有属性 'encode',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47317826/