Ich habe folgenden Python-Code:Azure Storage Table Rückkehr leere Einheiten
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
Es arbeitet jedoch für die ersten Ergebnisse, a.items
leer kommt. Nach 10 Abfragen werden schließlich einige Daten zurückgegeben. Es ist, als hätte die Tabelle keine Zeilen für die Werte, die ich abgefragt habe. Ich weiß es, und es kommt schließlich. Aber nur nach zu vielen leeren Ergebnissen.
Ich habe einen PHP-Code für den gleichen Zweck, aber es erhält keine leeren Einheiten. Ich denke also nicht, dass dies ein gewöhnliches Verhalten von Azure ist. Vielleicht die Art, wie sein SDK für Python funktioniert?
Erhalten Sie einige Werte in 'a.next_marker ['nextpartitionkey']' und 'a.next_marker ['nextrowkey']', auch wenn keine Datensätze zurückgegeben werden? –
Ja, das tue ich. 'next_marker' wird immer zurückgegeben. – rlcabral