Загрузить файл CSV в учетную запись хранения Microsoft Azure, используя python
Я пытаюсь загрузить .csv
файл в учетную запись хранения Microsoft Azure, используя python. Я нашел C-sharp код для записи данных в хранилище BLOB-объектов. Но я не знаю C#
язык. Мне нужно загрузить .csv
файл с использованием Python.
Есть ли пример использования python для загрузки содержимого файла CSV в хранилище Azure?
2 ответа
Я нашел решение, используя эту ссылку. Мой следующий код отлично подходит для загрузки и скачивания .csv
файл.
#!/usr/bin/env python
from azure.storage.blob import BlockBlobService
from azure.storage.blob import ContentSettings
block_blob_service = BlockBlobService(account_name='<myaccount>', account_key='mykey')
block_blob_service.create_container('mycontainer')
#Upload the CSV file to Azure cloud
block_blob_service.create_blob_from_path(
'mycontainer',
'myblockblob.csv',
'test.csv',
content_settings=ContentSettings(content_type='application/CSV')
)
# Check the list of blob
generator = block_blob_service.list_blobs('mycontainer')
for blob in generator:
print(blob.name)
# Download the CSV file From Azure storage
block_blob_service.get_blob_to_path('mycontainer', 'myblockblob.csv', 'out-test.csv')
Исходя из моего понимания, я думаю, что вы хотите загрузить данные csv
файл в хранилище таблиц Azure. Согласно документу Pythoncsv
пакет и официальный учебник для Azure Storage Python SDK, я сделал пример кода и данные CSV, как показано ниже.
Например, данные моего тестового CSV-файла приведены ниже.
Name,Species,Score
Kermit,Frog,10
Ms. Piggy,Pig,50
Fozzy,Bear,23
И пример кода.
import csv
from azure.storage.table import TableService, Entity
table_service = TableService(account_name='myaccount', account_key='mykey')
table_service.create_table('csvtable')
csvfile = open('test.csv', 'r')
fieldnames = ('Name','Species','Score')
reader = csv.DictReader(csvfile)
rows = [row for row in reader]
for row in rows:
index = rows.index(row)
row['PartitionKey'] = '1'
row['RowKey'] = '%08d' % index
table_service.insert_entity('csvtable', row)
Надеюсь, поможет.