«Microsoft. Azure .WebJobs.Extensions.Storage: ссылка на объект не установлена ​​для экземпляра объекта» Ошибка в Python Azure Функция - PullRequest
0 голосов
/ 10 апреля 2020

Я работаю над 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"
    }
  ]
}

Заранее спасибо.

...