【问题标题】:azure blob storage classes to python dictionaries?azure blob 存储类到 python 字典?
【发布时间】:2021-08-07 10:19:07
【问题描述】:

这听起来应该很简单,但我在这里过得很糟糕。

我正在使用 azure python sdk,最新版本。我能够到达端点,获取数据等......但事情在天蓝色的自定义类中下降。最后,它们大多只是字典,但有些格式混乱了。就像字典中的一个条目,而不是实际的日期,它以“datetime.datetime(2021, 05....etc.

我一直在尝试解析和修复这些问题,但我觉得应该有更好的方法。现在我进入一个包含多个子字典的 blob 存储类。我试图检测 kv 对中的值是否是字典,但类型是“ ”。我对Azure不太熟悉,有没有办法将这些类中的数据作为实际的python dicts返回?

如果没有,我有没有办法在 之类的东西上使用 isinstance ?

谢谢。

【问题讨论】:

  • 那么您是否正在寻找一种通过存储 blob SDK V12 获取 blob 属性(例如 last_modified)的方法?
  • 是的..我实际上在所有容器中获取所有 blob 并从 python dicts 制作一个大型 jsonlist。如果我盲目地将 azure 类解析为 dicts 并且它们是,它工作正常。 container_client = blob_service_client.get_container_client( (container_name) ) blob_list = container_client.list_blobs()。我基本上是在查看输出,然后在我看到它们时战略性地解析字典。但这很糟糕,因为如果出现了我今天没有的新房产……它会坏掉的。
  • 如果这一切都归结为好的字典,我可以输出它并开心
  • 怎么样?您的问题解决了吗?
  • 我今天下午出去。届时将再次拿起它。感谢下面的回复。我从没想过单独解析每件事,但从技术上讲,这不是一回事吗?当我撤回包括您发布的项目在内的内容时,我有更多的数据。如果我必须知道每个项目,而不仅仅是“在 json 中将它全部交给我”,那么它的排序与我现在所做的相同,即为每个嵌套的 dict 添加处理。在您的示例中, print(type(blob) 并查看每个是什么。它像 dict 一样解析,但未定义为一个。多个字段的输出不是 json 友好的。像 bytearray

标签: python-3.x azure-blob-storage


【解决方案1】:

我现在可以研究的最佳方法是创建一个函数来传递所有接收到的 kv 对并对其进行格式化,如果需要的话,然后返回格式化的版本并将其添加到新的字典中。

我检查每一对以查看该对中的值是否具有 .items() 的可能性,如果是,它会通过格式化函数运行该设置。

我觉得有更好的方法,但现在看来这让我得到了一个可读且对 json 友好的输出。

格式化函数如下所示。

def formatAzureSpecialChars(self, k, v) -> list:
    if k == 'encryption_scope' or k == 'blob_type':
        v = str(v)
        v.replace("'", "")
        v = str(v)
        return(True, v)
    elif isinstance(v, datetime.datetime):
        v = v.strftime("%Y-%m-%d_T%H-%M-%S")
        return(True, v)
    elif k == 'content_md5':
        v = v.hex()
        return(True, v)
    else:
        return(False, v)

【讨论】:

    猜你喜欢
    • 2017-04-18
    • 2017-02-20
    • 2022-08-24
    • 2014-08-23
    • 1970-01-01
    • 2022-08-03
    • 2017-11-10
    • 2017-07-08
    • 2021-10-13
    相关资源
    最近更新 更多