Bagaimana saya mengatakannya "\"ogc_fid\"=482 AND name=\"hello world\""? Di sini dikatakan bahwa ini tidak tersedia dalam python: qgis.org/api/… . Mungkin Anda tahu cara untuk menghindari batasan ini?
Jenia Ivanov
2
Ingatlah bahwa nama bidang harus dua kali dikutip, nilai string tunggal dikutip, dan angka tidak perlu tanda kutip. Dalam contoh Anda: "\"ogc_fid\"=482 AND \"name\"='hello world'". BTW, tautan yang Anda sertakan dalam komentar Anda sebenarnya menyatakan bahwa atribut statis BinaryOperatorTexttidak tersedia di binding Python, tetapi operator bekerja untuk QgsExpression, bahkan jika mereka digunakan melalui binding Python.
Germán Carrillo
@ GermánCarrillo Saya menggunakan metode Anda di atas tetapi tidak dapat mengembalikan nilai apa pun, meskipun telah menyalin & menempelkan nilai yang diketahui untuk dicari. Kolom berisi string, jadi saya telah menggunakan expr = QgsExpression("\"police_ref\" = 'P0580996'"). Saya telah mencoba menambahkan karakter break ke istilah pencarian (untuk tanda kutip tunggal) tetapi tidak membuat perbedaan. Menariknya, jika saya membuka tabel atribut yang saya minta, dan menggunakan pembuat ekspresi di sana, itu membuat pilihan jika police_ref saya gunakan sebagai contoh di baris paling pertama, tetapi tidak sebaliknya
Alex
@ GermánCarrillo maaf, saya tidak yakin apa yang saya lakukan berbeda tetapi saya bisa memilih fitur sekarang! Bagi yang lain membaca, Anda tidak perlu karakter pembuka untuk kutipan tunggal
Selamat datang di GIS SE. Sebagai pengguna baru, silakan ikuti Tur . Jawaban yang ada (dan diterima) jauh lebih lengkap. Bagaimana hal ini membaik? Secara umum, cara untuk mendapatkan poin reputasi adalah dengan menjawab pertanyaan yang tidak dijawab, tetapi jawaban lengkap baru untuk pertanyaan berusia tiga tahun akan diterima jika itu secara khusus mengatasi masalah dengan solusi sebelumnya (dalam hal ini, masalahnya tentu harus disebutkan) .
Vince
1
Anda hanya perlu mengujinya di antarmuka GUI: "Select by Expression". Jika berhasil, Anda dapat menempelnya di kode Python Anda yang dikelilingi oleh tanda kutip ganda "".
exp =QgsExpression("ogc_fid=482")
Jika Anda dibandingkan dengan string, Anda dapat menambahkan kutipan tunggal ''.
exp =QgsExpression("ogc_fid='482'")
Ini prinsip yang sama dalam python, itu bisa membuat perbedaan antara kutipan ganda dan kutipan tunggal.
"\"ogc_fid\"=482 AND name=\"hello world\""
? Di sini dikatakan bahwa ini tidak tersedia dalam python: qgis.org/api/… . Mungkin Anda tahu cara untuk menghindari batasan ini?"\"ogc_fid\"=482 AND \"name\"='hello world'"
. BTW, tautan yang Anda sertakan dalam komentar Anda sebenarnya menyatakan bahwa atribut statisBinaryOperatorText
tidak tersedia di binding Python, tetapi operator bekerja untukQgsExpression
, bahkan jika mereka digunakan melalui binding Python.expr = QgsExpression("\"police_ref\" = 'P0580996'")
. Saya telah mencoba menambahkan karakter break ke istilah pencarian (untuk tanda kutip tunggal) tetapi tidak membuat perbedaan. Menariknya, jika saya membuka tabel atribut yang saya minta, dan menggunakan pembuat ekspresi di sana, itu membuat pilihan jika police_ref saya gunakan sebagai contoh di baris paling pertama, tetapi tidak sebaliknyaIni bekerja untuk saya di Konsol Python QGIS
sumber
Anda hanya perlu mengujinya di antarmuka GUI: "Select by Expression". Jika berhasil, Anda dapat menempelnya di kode Python Anda yang dikelilingi oleh tanda kutip ganda "".
Jika Anda dibandingkan dengan string, Anda dapat menambahkan kutipan tunggal ''.
Ini prinsip yang sama dalam python, itu bisa membuat perbedaan antara kutipan ganda dan kutipan tunggal.
sumber