gpt4 book ai didi

python - 如何使用 Azure Functions Blob 触发器和 Python 从 Blob 存储中读取 json 文件

转载 作者:行者123 更新时间:2023-12-03 01:23:37 25 4
gpt4 key购买 nike

我在 Azure Function App 中创建了一个 BlobTrigger,用于读取在我的 Azure Blob 存储中插入或更新的任何新文件。

触发器工作正常,可以识别在我的 blob 容器中插入或更新的最新文件,并且我能够打印文件的 json 正文。

但是,当我尝试将 json 对象存储在变量中以对其进行转换时,它会抛出错误。

我想将 json 的每个键分配给一个变量。我的 json 是

   {
"name":"Saikat",
"id":"1234"
}

下面是我在尝试存储 json 时可以打印 json 和错误的代码。

   import logging
import azure.functions as func
import json

def main(myblob: func.InputStream):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {myblob.name}\n"
f"Blob Size: {myblob.length} bytes")
print("JSON Body",json.load(myblob))

enter image description here

   import logging
import azure.functions as func
import json

def main(myblob: func.InputStream):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {myblob.name}\n"
f"Blob Size: {myblob.length} bytes")
print("JSON Body",json.load(myblob))
#Store JSON file
jsonData= json.load(myblob)
print("****jsonData*****",jsonData)

enter image description here

最佳答案

本质上,您收到此错误是因为您从流中读取了两次。第一次读取后,流的读取位置设置在流的末尾,这就是第二次读取失败的原因。

根据下面的评论,由于InputStream BytesIO对象不包含查找操作,因此问题的解决方案是仅读取一次流。

尝试如下操作:

import logging
import azure.functions as func
import json

def main(myblob: func.InputStream):
logging.info(f"Python blob trigger function processed blob \n"
f"Name: {myblob.name}\n"
f"Blob Size: {myblob.length} bytes")
jsonData= json.load(myblob)
print("JSON Body",jsonData)

#Store JSON file
print("****jsonData*****",jsonData)

关于python - 如何使用 Azure Functions Blob 触发器和 Python 从 Blob 存储中读取 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67902058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com