如何使用 python SDK 筛选 Azure 表中的特定行

How do I filter specific rows in Azure Tables using python SDK

我在 Azure 存储 table 中有以下架构的数据:

PartitionKey      TimeStamp         Name
..                ...               ...

我想 return 所有名称以 mem 开头的实体。我正试图在 python.

中实现这一目标

我只能找到有关在 SDK 的过滤器参数中进行完整字符串比较的文档 (https://docs.microsoft.com/en-us/rest/api/storageservices/Querying-Tables-and-Entities?redirectedfrom=MSDN)。有没有办法进行部分比较?

等效的SQL查询是

SELECT * from table where NAME LIKE mem%

azure table 存储中没有这样的运算符。

但是有一个技巧(这里有一个 blog 关于这个)可以用于您的目的。像下面这样定义你的 $filter:

"Name ge 'mem' and Name lt 'men'"

这里是测试代码(更多细节请参考这个doc),运行正常:

from azure.cosmosdb.table.tableservice import TableService
from azure.cosmosdb.table.models import Entity

table_service = TableService(account_name='xxx', account_key='xxx')

tasks = table_service.query_entities(
    'your_table_name', filter="Name ge 'mem' and Name lt 'men'")

for task in tasks:
    print(task.Name)

我这边的测试结果: