使用 SDK 在 azure 函数中将 Azure blob 存储到 JSON

Nord112

我正在尝试创建一个计时器触发器 azure 函数,该函数从 blob 中获取数据,对其进行聚合,然后将这些聚合放入 cosmosDB 中。我之前尝试使用 azure 函数中的绑定来使用 blob 作为输入,但我被告知这是不正确的(请参阅此线程:Azure 函数 python 命名参数没有值)。

我现在正在使用 SDK 并遇到以下问题:

import sys, os.path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), 'myenv/Lib/site-packages')))
import json
import pandas as pd
from azure.storage.blob import BlockBlobService 

data = BlockBlobService(account_name='accountname', account_key='accountkey')
container_name = ('container')
generator = data.list_blobs(container_name)

for blob in generator:
print("{}".format(blob.name))
json = json.loads(data.get_blob_to_text('container', open(blob.name)))


df = pd.io.json.json_normalize(json)
print(df)

这会导致错误:

IOError: [Errno 2] No such file or directory: 'test.json'

我意识到这可能是一个绝对路径问题,但我不确定它如何与 azure 存储一起使用。关于如何规避这种情况的任何想法?


通过执行以下操作使其“工作”:

for blob in generator:
loader = data.get_blob_to_text('kvaedevdystreamanablob',blob.name,if_modified_since=delta)
json = json.loads(loader.content)

这适用于一个 json 文件,即我只有一个在存储中,但是当添加更多时,我收到此错误:

ValueError: Expecting object: line 1 column 21907 (char 21906)

即使我添加if_modified_since为只接收一个 blob,也会发生这种情况如果我想出什么,会更新。欢迎随时提供帮助。


另一个更新:我的数据通过流分析进入,然后下降到 blob。我选择数据应该以数组的形式出现,这就是发生错误的原因。当流终止时,blob 不会立即附加]到 json 中的 EOF 行,因此 json 文件无效。现在将尝试在流分析中逐行使用而不是数组。

Nord112

弄清楚了。最后,这是一个非常简单的修复:

我必须确保 blob 中的每个 json 条目都少于 1024 个字符,否则会创建一个新行,从而使读取行出现问题。

遍历每个 blob 文件、读取并添加到列表的代码如下:

data = BlockBlobService(account_name='accname', account_key='key')
generator = data.list_blobs('collection')

dataloaded = []
for blob in generator:
loader = data.get_blob_to_text('collection',blob.name)
trackerstatusobjects = loader.content.split('\n')
for trackerstatusobject in trackerstatusobjects:
    dataloaded.append(json.loads(trackerstatusobject))

从这里你可以添加到数据框并做你想做的任何事情:) 如果有人偶然发现类似的问题,希望这会有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 Node.js SDK 从 Azure Blob 存储读取附加 Blob 到字符串?

来自分类Dev

使用Azure函数C#将JSON存储在Blob存储上

来自分类Dev

使用Https的Azure Blob存储

来自分类Dev

使用不带Azure SDK的REST API将流上传到Azure Blob存储

来自分类Dev

使用Java v12 SDK在Azure Blob存储中复制Blob

来自分类Dev

在Azure函数中使用Python根据Azure Blob存储中的模式匹配检查Blob的存在

来自分类Dev

使用适用于Java的Azure存储SDK将VM页面Blob从一个Azure订阅复制到另一个

来自分类Dev

如何使用Azure Blob存储SDK将Blob从一个容器复制到另一个容器

来自分类Dev

使用REST API和C#将PDF文件上传到Azure Blob存储(不使用任何AZURE STORAGE SDK)

来自分类Dev

如何使用Python SDK将大文件(〜100mb)上传到Azure blob存储?

来自分类Dev

如何使用python sdk将字符串直接上传到Azure存储Blob?

来自分类Dev

如何使用Python SDK将大文件(〜100mb)上传到Azure Blob存储?

来自分类Dev

使用 Azure CLI 创建带有 blob 存储触发器的 azure 函数

来自分类Dev

如何使用.NET v12 SDK在具有指定ContentType的Azure Blob存储中上传Blob?

来自分类Dev

使用python从Azure blob读取Json文件?

来自分类Dev

使用bash,curl访问Azure blob存储

来自分类Dev

Azure SDK 2.4更新“中断”开发存储Blob

来自分类Dev

用于 Blob 存储的 Azure 搜索 SDK - 删除文件

来自分类Dev

从Azure Blob存储中的Azure函数中加载pickle文件

来自分类Dev

在python的Azure函数中从Azure blob存储读取数据

来自分类Dev

在python的Azure函数中从Azure blob存储读取数据

来自分类Dev

Python Azure SDK上载Blob

来自分类Dev

Azure Blob存储授权

来自分类Dev

Azure存储:Blob与表

来自分类Dev

Azure Blob 存储

来自分类Dev

Azure数据工厂到Azure Blob存储权限

来自分类Dev

Nodejs Azure存储将Blob复制到新Blob

来自分类Dev

是使用Azure SDK v1.8页面Blob还是块Blob创建的Blob?

来自分类Dev

将文件从 angular 应用程序上传到 azure 函数,然后坚持到 blob 存储

Related 相关文章

  1. 1

    如何使用 Node.js SDK 从 Azure Blob 存储读取附加 Blob 到字符串?

  2. 2

    使用Azure函数C#将JSON存储在Blob存储上

  3. 3

    使用Https的Azure Blob存储

  4. 4

    使用不带Azure SDK的REST API将流上传到Azure Blob存储

  5. 5

    使用Java v12 SDK在Azure Blob存储中复制Blob

  6. 6

    在Azure函数中使用Python根据Azure Blob存储中的模式匹配检查Blob的存在

  7. 7

    使用适用于Java的Azure存储SDK将VM页面Blob从一个Azure订阅复制到另一个

  8. 8

    如何使用Azure Blob存储SDK将Blob从一个容器复制到另一个容器

  9. 9

    使用REST API和C#将PDF文件上传到Azure Blob存储(不使用任何AZURE STORAGE SDK)

  10. 10

    如何使用Python SDK将大文件(〜100mb)上传到Azure blob存储?

  11. 11

    如何使用python sdk将字符串直接上传到Azure存储Blob?

  12. 12

    如何使用Python SDK将大文件(〜100mb)上传到Azure Blob存储?

  13. 13

    使用 Azure CLI 创建带有 blob 存储触发器的 azure 函数

  14. 14

    如何使用.NET v12 SDK在具有指定ContentType的Azure Blob存储中上传Blob?

  15. 15

    使用python从Azure blob读取Json文件?

  16. 16

    使用bash,curl访问Azure blob存储

  17. 17

    Azure SDK 2.4更新“中断”开发存储Blob

  18. 18

    用于 Blob 存储的 Azure 搜索 SDK - 删除文件

  19. 19

    从Azure Blob存储中的Azure函数中加载pickle文件

  20. 20

    在python的Azure函数中从Azure blob存储读取数据

  21. 21

    在python的Azure函数中从Azure blob存储读取数据

  22. 22

    Python Azure SDK上载Blob

  23. 23

    Azure Blob存储授权

  24. 24

    Azure存储:Blob与表

  25. 25

    Azure Blob 存储

  26. 26

    Azure数据工厂到Azure Blob存储权限

  27. 27

    Nodejs Azure存储将Blob复制到新Blob

  28. 28

    是使用Azure SDK v1.8页面Blob还是块Blob创建的Blob?

  29. 29

    将文件从 angular 应用程序上传到 azure 函数,然后坚持到 blob 存储

热门标签

归档