Bir Postgres veritabanına (9.3) sahip olduğumu ve Resources
adlı bir tablo olduğunu varsayalım. Resources
tablosunda bir int ve bir JSON türü olan data
olan id
alanlarına sahibim.Python SQLAlchemy ve Postgres - Bir JSON öğesini sorgulamak için
Diyelim ki, aşağıdaki tablodaki kayıtlarım var.
- 1, { 'ad': 'Dave, 'soyad': 'Gallant'}
- 2, { 'ad': ' John', 'soyad': 'Doe'}
ne yapmak istiyorum
böyle bir şey yazmaya çalıştı veri sütunu lastname eşit "Doe" ile bir json elemanı sahip olduğu tüm kayıtları dönmek bir sorgu yazmak olduğunu
records = db_session.query(Resource).filter(Resources.data->>'lastname' == "Doe").all()
Pycharm bana "- >>"
Üzerinde bir derleme hatası veriyor. Filtre gereği ne yazacağımı bilen var mı? JSON'a astext
records = db_session.query(Resource).filter(
Resources.data["lastname"].astext == "Doe"
).all()
gibi bunu yapabilir gibi 'astext' kullanmayı deneyin Doe "). All()' ve çalışıp çalışmadığını görün – Anzel
Çalıştığımıza göre, ".c" yi kaldırmam ve doğrudan "Resources.data" yı kullanmam gerekiyordu. Teşekkürler! –
Ah ... evet, genellikle .c' ile sütun adı için gidiyorum ... çözdüğüne sevindim. Ben daha sonra bir cevap olarak göndereceğim :-) – Anzel