PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

kueri read_sql mengembalikan kerangka data kosong setelah saya meneruskan parameter sebagai dict di python pandas

Ya, saya cukup yakin bahwa masalah Anda dihasilkan dari mencoba menetapkan nama kolom dalam kueri Anda melalui pengikatan parameter (and %(target)s in ('ACT') ) seperti yang disebutkan dalam komentar.

Ini menyebabkan kueri Anda membatasi hasil yang disetel ke catatan di mana 'status' in ('ACT') (yaitu Apakah string 'status' merupakan elemen dari daftar yang hanya berisi string 'ACT'?). Ini, tentu saja, salah, oleh karena itu tidak ada catatan yang dipilih dan Anda mendapatkan hasil yang kosong.

Ini akan berfungsi seperti yang diharapkan:

import psycopg2.sql

col_name = 'status'
table_name = 'public.churn_data'
query_params = {'date_from':'201712',
                'date_to':'201805',
                'drform_target':'NPA'
               }

sql_data_sample = """select * 
                     from {0} 
                     where dt = %(date_to)s 
                     and {1} in (%(drform_target)s)
                     ----------------------------------------------------
                     union all
                     ----------------------------------------------------
                     (select * 
                      from {0} 
                      where dt  = %(date_from)s 
                      and {1} in ('ACT') 
                      order by random() limit 50000);"""

sql_data_sample = sql.SQL(sql_data_sample).format(sql.Identifier(table_name), 
                                                  sql.Identifier(col_name))

df_data_sample = pd.read_sql(sql_data_sample,con = cnxn,params = query_params)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Liquibase/PostgreSQL:bagaimana cara mempertahankan case tabel dengan benar?

  2. pg_dump dan pg_restore Postgresql di berbagai versi utama?

  3. Apa artinya ketika proses PostgreSQL menganggur dalam transaksi?

  4. kesalahan:ALTER TYPE ... ADD tidak dapat berjalan di dalam blok transaksi

  5. Dapatkan hitungan kunci asing dari beberapa tabel