使用Python读取整数列的Azure表存储查询

时间:2018-04-24 02:11:17

标签: python azure azure-table-storage azure-tablequery

我正在尝试使用Python查询Azure表存储。 int32数据类型列不返回其值,但返回类似 azure.storage.table.models.EntityProperty obj .... 的内容。但是,在字符串数据类型列的情况下,我没有遇到任何此类问题。有人可以帮助我吗?

下面脚本中的Pos列是表

中的整数列
queryfilter = "startDateTime gt datetime'%s' and temp eq '%s'" % (datefilter, temp)

task = table_service.query_entities(azureTable, filter=queryfilter)

for t in task: 
   print(t.Pos)

2 个答案:

答案 0 :(得分:1)

查看此处的文档:https://docs.microsoft.com/en-us/python/api/azure.cosmosdb.table.models.entityproperty?view=azure-python,您可以尝试以下操作吗?

for t in task: print(t.Pos.value)

答案 1 :(得分:0)

Azure 表存储在预览版中有一个新的 Python 库,可通过 pip 安装。要安装使用以下 pip 命令

pip install azure-data-tables

此 SDK 能够针对 Tables 或 Cosmos 端点(尽管 Cosmos 存在已知问题)。

新库使用了类似的TableEntity,它是从Python字典继承的键值类型,值是相同的EntityProperty。有两种方法可以访问实体属性。如果类型是 Int32(默认整数类型)或 String 它们可以通过以下方式访问:

my_value = entity.my_key  # direct access
my_value = entity['my_key'] # same access pattern as a dict

如果 EntityPropertyINT32BINARY 类型,那么您必须使用 .value 表示法:

my_value = entity.my_key.value  # direct access
my_value = entity['my_key'].value # same access pattern as a dict

仅供参考,我是 Microsoft Azure SDK for Python 团队的全职工程师。