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

Posted

技术标签:

【中文标题】Azure表存储查询使用Python-读取整数列【英文标题】:Azure Table Storage Querying using Python- Read Integer Column 【发布时间】:2018-10-04 04:03:26 【问题描述】:

我正在尝试使用 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)

【问题讨论】:

你的代码在哪里? 嗨,Sraw,添加了脚本 你可以把azureTable修改成'azureTable',然后试试看。 嗨,Joy,上面的脚本适用于 azureTable 中的所有其他字符串类型列,但 int 数据类型的 Pos 列除外。 azureTable 是查询时传递的参数。我用引号改变了它,但没有运气 【参考方案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)

【讨论】:

【参考方案2】:

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 团队的一名全职工程师。

【讨论】:

以上是关于Azure表存储查询使用Python-读取整数列的主要内容,如果未能解决你的问题,请参考以下文章

将多个整数列读取为字符串,尝试 gsub 并转换回整数

具有增量整数列的 MSSQL Select 语句...不是来自表

如何通过 C# 将可空整数列的空值插入 SQL 表

Azure 表存储更新使列为 Null

整数列可以为空吗?

根据表 B 的拆分百分比雪花拆分表 A 的整数列