Как мне сказать "\"ogc_fid\"=482 AND name=\"hello world\""? Здесь говорится, что это недоступно в python: qgis.org/api/… . Может быть, вы знаете способ обойти это ограничение?
Женя Иванов
2
Помните, что имена полей должны быть в двойных кавычках, строковые значения - в одинарных кавычках, а числа в кавычках В вашем примере: "\"ogc_fid\"=482 AND \"name\"='hello world'". Кстати, ссылка, которую вы включили в свой комментарий, на самом деле утверждает, что статический атрибут BinaryOperatorTextнедоступен в привязках Python, но операторы работают QgsExpression, даже если они используются через привязки Python.
Герман Каррильо
@ GermánCarrillo Я использую ваш метод выше, но не могу заставить его вернуть какие-либо значения, несмотря на то, что скопировал и вставил известное значение для поиска. Столбец содержит строки, поэтому я использовал expr = QgsExpression("\"police_ref\" = 'P0580996'"). Я попытался добавить символ прерывания к поисковому запросу (для одинарных кавычек), но это не имеет значения. Интересно, что если я открою таблицу атрибутов, к которой я обращаюсь, и использую там построитель выражений, он делает выбор, если в качестве первой строки используется Police_ref, который я использую в качестве примера, но не иначе
Alex
@ GermánCarrillo извините, не берите в голову, я не уверен, что я сделал по-другому, но я могу заставить его выбирать функции сейчас! Для других читателей вам не нужен брейк-символ для одинарных кавычек
Добро пожаловать в ГИС ЮВ. Как новый пользователь, пожалуйста, возьмите Тур . Существующий (и принятый) ответ является гораздо более полным. Как это улучшится? Как правило, способ заработать очки репутации состоит в том, чтобы отвечать на оставшиеся без ответа вопросы, но новый полный ответ на трехлетний вопрос был бы желателен, если бы он конкретно касался проблемы с предыдущим решением (в этом случае проблема, безусловно, должна быть упомянута) ,
Винс
2
Вам нужно только проверить это в интерфейсе GUI: «Выбрать по выражению». Если это работает, вы можете вставить его в код Python, заключив его в двойные кавычки "".
exp =QgsExpression("ogc_fid=482")
Если вы сравниваете со строкой, вы можете добавить одинарную кавычку ''.
exp =QgsExpression("ogc_fid='482'")
Это тот же принцип в Python, он может иметь значение между двойной кавычкой и одинарной кавычкой.
"\"ogc_fid\"=482 AND name=\"hello world\""
? Здесь говорится, что это недоступно в python: qgis.org/api/… . Может быть, вы знаете способ обойти это ограничение?"\"ogc_fid\"=482 AND \"name\"='hello world'"
. Кстати, ссылка, которую вы включили в свой комментарий, на самом деле утверждает, что статический атрибутBinaryOperatorText
недоступен в привязках Python, но операторы работаютQgsExpression
, даже если они используются через привязки Python.expr = QgsExpression("\"police_ref\" = 'P0580996'")
. Я попытался добавить символ прерывания к поисковому запросу (для одинарных кавычек), но это не имеет значения. Интересно, что если я открою таблицу атрибутов, к которой я обращаюсь, и использую там построитель выражений, он делает выбор, если в качестве первой строки используется Police_ref, который я использую в качестве примера, но не иначеЭто сработало для меня на консоли QGIS Python
источник
Вам нужно только проверить это в интерфейсе GUI: «Выбрать по выражению». Если это работает, вы можете вставить его в код Python, заключив его в двойные кавычки "".
Если вы сравниваете со строкой, вы можете добавить одинарную кавычку ''.
Это тот же принцип в Python, он может иметь значение между двойной кавычкой и одинарной кавычкой.
источник