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
如果EntityProperty
是INT32
或BINARY
类型,那么您将不得不使用.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-读取整数列的主要内容,如果未能解决你的问题,请参考以下文章