听起来您想知道如何使用下图的函数列出具有RowKey 值query_entities(table_name, filter=None, select=None, num_results=None, marker=None, accept='application/json;odata=minimalmetadata', property_resolver=None, timeout=None)
的表的最新实体。table1
SCHEDULE
据我所知,您需要使用filter
参数来实现它,如下面的代码。
filter = "RowKey eq 'SCHEDULE'
task2 = table_service.query_entities('table1', filter=filter)
print(list(task2))
上面的代码将列出所有带有RowKey
SCHEDULE
和 unknownPartitionKey
的实体,请参考官方文档Querying Tables and Entities
了解更多使用filter
参数的细节。
但是,由于不支持对实体进行排序Timestamp
,所以无法直接通过filter
and获取最新的实体num_results=1
。如果有模式知道最新实体的时间戳范围,可以尝试使用下面的代码。
import datetime
from operator import itemgetter
filter = "RowKey eq 'SCHEDULE' and Timestamp lt datetime'{}'".format(datetime.datetime.utcnow().isoformat()) # such as `2019-07-29T07:41:40.897643`
# Or filter = "RowKey eq 'SCHEDULE' and Timestamp ge datetime'<the start of datetime range>' and Timestamp lt datetime'<the end of datetime range>'"
task2 = table_service.query_entities('table1', filter=filter)
print(list(task2))
newlist = sorted(task2, key=itemgetter('Timestamp'))
latest_entity = newlist[0]
print(latest_entity)
如果您想要一个简单的解决方案,我认为带有表存储触发器的 Azure Function 会有所帮助,请参阅Azure Table storage bindings for Azure Functions
支持 Python 的官方文档。
希望能帮助到你。