Azure 存储 Table 返回空实体
Azure Storage Table returning empty entities
我有以下 Python 代码:
def GetData(tableService, tableName, dataFilter):
keyMarkers = {}
keyMarkers['nextpartitionkey'] = 0
keyMarkers['nextrowkey'] = 0
b=[]
while True:
#get a batch of data
a = tableService.query_entities(table_name=tableName, filter=dataFilter,num_results=1000 ,marker=keyMarkers)
#copy results to list
for item in a.items:
b.append(item.amount.value)
#check to see if more data is available
if len(a.next_marker) == 0:
del a
break
#if more data available setup current position
keyMarkers['nextpartitionkey'] = a.next_marker['nextpartitionkey']
keyMarkers['nextrowkey'] = a.next_marker['nextrowkey']
#house keep temp storage
del a
#return final list
return b
它正在工作,但是,对于第一个结果,a.items
是空的。 10 次查询后,它终于开始返回一些数据。就像 table 没有我查询的值的行。我知道它有,它最终会来。但只有在返回太多空结果之后。
我有一个用于相同目的的 PHP 代码,但它没有得到空实体。所以我认为这不是 Azure 的常见行为。也许它的 SDK Python 的工作方式?
在第一个请求中,您能否尝试为标记传递 'None',而不是为 nextpk / nextrk 传递包含 0 和 0 的字典?我不确定,但这可能会使服务混淆以搜索具有此 pk 和 rk 的 table 实体。
我有以下 Python 代码:
def GetData(tableService, tableName, dataFilter):
keyMarkers = {}
keyMarkers['nextpartitionkey'] = 0
keyMarkers['nextrowkey'] = 0
b=[]
while True:
#get a batch of data
a = tableService.query_entities(table_name=tableName, filter=dataFilter,num_results=1000 ,marker=keyMarkers)
#copy results to list
for item in a.items:
b.append(item.amount.value)
#check to see if more data is available
if len(a.next_marker) == 0:
del a
break
#if more data available setup current position
keyMarkers['nextpartitionkey'] = a.next_marker['nextpartitionkey']
keyMarkers['nextrowkey'] = a.next_marker['nextrowkey']
#house keep temp storage
del a
#return final list
return b
它正在工作,但是,对于第一个结果,a.items
是空的。 10 次查询后,它终于开始返回一些数据。就像 table 没有我查询的值的行。我知道它有,它最终会来。但只有在返回太多空结果之后。
我有一个用于相同目的的 PHP 代码,但它没有得到空实体。所以我认为这不是 Azure 的常见行为。也许它的 SDK Python 的工作方式?
在第一个请求中,您能否尝试为标记传递 'None',而不是为 nextpk / nextrk 传递包含 0 和 0 的字典?我不确定,但这可能会使服务混淆以搜索具有此 pk 和 rk 的 table 实体。