Как использовать фильтр на query_entities - PullRequest
0 голосов
/ 18 мая 2019

Я хочу использовать фильтр для query_entities для хранения таблиц Azure.

Я пытался использовать фильтр следующим образом: Table = table_service.query_entities ('MyTableName', filter = "RowKey eq 20")

#coding:utf-8
import os
import json
from azure import *
from azure.storage import *
from azure.storage.table import TableService, Entity

table_service = TableService(account_name='MyAccountName', 
sas_token='MySASToken')
Table  = table_service.query_entities('MyTableName', filter = "Country eq 
USA")
print(Table.items)

Я получил исключение:

azure.common.AzureHttpError: Неверный запрос {"odata.error": {"code": "InvalidInput", "message":{"lang": "en-US", "value": "Обнаружен двоичный оператор с несовместимыми типами. Найдены типы операндов 'Edm.String' и 'Edm.Int32' для вида оператора 'Equal'. \ nRequestId: ef3858e7-5002-00d0-617f-0d374a000000 \ nВремя: 2019-05-18T13: 45: 23.6288160Z "}}}

И я попытался изменить это:

Table  = table_service.query_entities('MyTableName', filter = "Country eq 
USA")

Но я получаю SyntaxError: неверный синтаксис

Ответы [ 3 ]

0 голосов
/ 18 мая 2019

Вы получили первое исключение из-за равного сравнения: "Country eq USA".

Проверьте описание таблицы, в сообщении об исключении говорится, что вы делаете "Найдены типы операндов 'Edm.String' и 'Edm.Int32' для вида оператора" Equal "".Country скорее всего будет Edm.Int32, поэтому убедитесь, что вы сравниваете один и тот же тип.

И второе исключение, хотя вы и не опубликовали полную трассировку. Я подозреваю, что вы удалили скобку последней строки.

0 голосов
/ 18 мая 2019

Я пробовал это, и он отлично работает:

Table  = table_service.query_entities('MyTableName', filter = "Country eq 
'USA'")
0 голосов
/ 18 мая 2019

Попробуйте это для фильтра:

Country eq 'USA'

Как правило, тип данных вашего атрибута String, следовательно, значение должно быть в одинарных кавычках.

То же самое относится к вашему RowKeyзапрос также:

RowKey eq '20'

Вы можете найти больше примеров здесь: https://docs.microsoft.com/en-us/rest/api/storageservices/querying-tables-and-entities#sample-query-expressions.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...