Skip to content
Advertisement

error: its says legacy_id is an invalid identifier

import streamlit
import pandas as pd
import snowflake.connector
streamlit.title('Citibike station')
my_cnx = snowflake.connector.connect(**streamlit.secrets["snowflake"])
my_cur = my_cnx.cursor()
my_cur.execute("select legacy_id from citibike_status") <-- error
my_catalog = my_cur.fetchall()
df = pd.DataFrame(my_catalog) streamlit.write(df)

if I try * it fetches all the data but when I mention any of the col names it says it’s invalid.

Advertisement

Answer

Most likely it was quoted during table creation and should be accessed as such:

select "legacy_id" from citibike_status

In Python:

my_cur.execute("""select "legacy_id" from citibike_status""")

Double-quoted Identifiers

If an object is created using a double-quoted identifier, when referenced in a query or any other SQL statement, the identifier must be specified exactly as created, including the double quotes. Failure to include the quotes might result in an Object does not exist error (or similar type of error).

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement