Como eu digo "\"ogc_fid\"=482 AND name=\"hello world\""? Aqui diz que isso não está disponível em python: qgis.org/api/… . Talvez você saiba uma maneira de contornar essa limitação?
Jenia Ivanov 28/05
2
Lembre-se de que os nomes dos campos devem estar entre aspas duplas, os valores de sequência entre aspas e os números não precisam de aspas. No seu exemplo: "\"ogc_fid\"=482 AND \"name\"='hello world'". BTW, o link que você incluiu no seu comentário está realmente afirmando que o atributo estático BinaryOperatorTextnão está disponível nas ligações do Python, mas os operadores trabalham para isso QgsExpression, mesmo que sejam usados através das ligações do Python.
Germán Carrillo
@ GermánCarrillo Estou usando o método acima, mas não consigo retornar nenhum valor, apesar de ter copiado e colado um valor conhecido a ser pesquisado. A coluna contém seqüências de caracteres, então eu usei expr = QgsExpression("\"police_ref\" = 'P0580996'"). Tentei adicionar um caractere de quebra ao termo de pesquisa (para aspas simples), mas isso não faz diferença. Curiosamente, se eu abrir a tabela de atributos Eu estou consultando, e usar a expressão construtor lá, ele faz uma seleção se o police_ref eu uso como um exemplo é na primeira fila, mas sem qualquer outro
Alex
@ GermánCarrillo desculpe, não importa, eu não tenho certeza do que fiz de maneira diferente, mas posso selecioná-lo agora! Para outros leitura, você não precisa de uma pausa de caracteres para as aspas simples
Bem-vindo ao GIS SE. Como novo usuário, faça o Tour . A resposta existente (e aceita) é muito mais completa. Como isso melhora isso? Geralmente, a maneira de obter pontos de reputação é responder a perguntas não respondidas, mas uma nova resposta completa para uma pergunta de três anos seria bem-vinda se abordar especificamente um problema com a solução anterior (nesse caso, o problema certamente deve ser mencionado) .
Vince
2
Você só precisa testá-lo na interface da GUI: "Selecionar por expressão". Se funcionar, você pode colá-lo no seu código Python entre aspas duplas "".
exp =QgsExpression("ogc_fid=482")
Se você comparar com uma string, poderá adicionar aspas simples ''.
exp =QgsExpression("ogc_fid='482'")
É o mesmo princípio em python, ele pode fazer a diferença entre aspas duplas e aspas simples.
"\"ogc_fid\"=482 AND name=\"hello world\""
? Aqui diz que isso não está disponível em python: qgis.org/api/… . Talvez você saiba uma maneira de contornar essa limitação?"\"ogc_fid\"=482 AND \"name\"='hello world'"
. BTW, o link que você incluiu no seu comentário está realmente afirmando que o atributo estáticoBinaryOperatorText
não está disponível nas ligações do Python, mas os operadores trabalham para issoQgsExpression
, mesmo que sejam usados através das ligações do Python.expr = QgsExpression("\"police_ref\" = 'P0580996'")
. Tentei adicionar um caractere de quebra ao termo de pesquisa (para aspas simples), mas isso não faz diferença. Curiosamente, se eu abrir a tabela de atributos Eu estou consultando, e usar a expressão construtor lá, ele faz uma seleção se o police_ref eu uso como um exemplo é na primeira fila, mas sem qualquer outroIsso funcionou para mim no QGIS Python Console
fonte
Você só precisa testá-lo na interface da GUI: "Selecionar por expressão". Se funcionar, você pode colá-lo no seu código Python entre aspas duplas "".
Se você comparar com uma string, poderá adicionar aspas simples ''.
É o mesmo princípio em python, ele pode fazer a diferença entre aspas duplas e aspas simples.
fonte