Я работаю над Azure функциями в Azure когнитивном поиске.
Мое требование - извлекать документы, хранящиеся в azure хранилище BLOB-объектов, в качестве входных данных для python azure функция и подразделение документа на разделы с помощью python модуля docx и сохранение каждого раздела в каждой строке Azure табличного хранилища.
Теперь моя функция Python Azure может читать содержимое BLOB-объектов через Input Binding (Function. json) и подразделяем его на разделы. Разделенные разделы хранятся в Python Списке . Когда я пытаюсь сохранить разделы в Azure Табличном хранилище, он выбрасывает Microsoft. Azure .WebJobs.Extensions.Storage: Ссылка на объект не установлен экземпляр объекта "Ошибка в Python Azure Функция. . Пожалуйста, помогите мне узнать, почему это происходит.
Я использую Python 3.7.1
VS код 1.43.2
docx 0.8.10
Azure функция 2
Python код:
import logging
import docx
import io
import azure.functions as func
def main(myblob: func.InputStream,outputtable: func.Out[str]):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {myblob.name}\n")
myblob=myblob.read(size=-1)
doc = docx.Document(io.BytesIO(myblob))
count=0
k=0
for i in range(len(doc.paragraphs)):
if doc.paragraphs[i].style.name != 'Heading 1' and doc.paragraphs[i+1].style.name == 'Heading 1' :
count=count+1
outside_list=[]
for i in range(count):
inside_list=[]
for j in range(k,len(doc.paragraphs)):
if doc.paragraphs[j].style.name == 'Heading 1' and doc.paragraphs[j+1].style.name == 'Heading 1' :
print("no")
else:
if doc.paragraphs[j].style.name != 'Heading 1' and doc.paragraphs[j+1].style.name == 'Heading 1' :
inside_list.append(doc.paragraphs[j].text)
k=j+1
break
else:
inside_list.append(doc.paragraphs[j].text)
outside_list.append(inside_list)
for i in range(len(outside_list)):
outputtable.set(str(outside_list[i]))
Функция. json
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "myblob",
"type": "blobTrigger",
"direction": "in",
"path": "container-name/{name}",
"connection": "AzureWebJobsStorage"
},
{
"name": "outputtable",
"direction": "out",
"type": "table",
"tableName": "Table name",
"connection": "AzureWebJobsStorage"
}
]
}
Заранее спасибо.