Der Tabellenname kann in Python [Duplikat] nicht in die SQLALCHEMY -Abfrage einfügen [Duplicate]

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Der Tabellenname kann in Python [Duplikat] nicht in die SQLALCHEMY -Abfrage einfügen [Duplicate]

by Anonymous » Yesterday, 22:12

In Python bin ich über die Verwendung einer Engine mit einem SQL -Server verbunden und habe die SQL -Daten in Workbench manipuliert. Ich möchte diese Datenmanipulation jetzt in Python verschieben. Die Namen der Tabellen, die ich verwenden werde, können sich ändern. Ich möchte, dass der Tabellenname in der Abfrage eine Variable ist. Egal wie ich versuche, ihm zu entkommen, ich kann den Tabellennamen nicht in die Abfrage einfügen. Hier ist mein Code: < /p>
df.to_sql(name='chartfield_data', con=engine, if_exists='replace', index=False)
sql = text("""
ALTER TABLE :table ADD Account_Group_2 VARCHAR(20);
UPDATE :table SET Account_Group_2 =
(CASE WHEN LEFT(Account, 1) = 4 THEN 'Revenue'
WHEN LEFT (Account, 1) = 5 THEN 'Salary'
WHEN LEFT(Account, 1) = 6 THEN 'OTPS'
ELSE 'Transfer' END);
""")

sql_dict = {'table': 'chartfield_data'}

with engine.begin() as connection:
connection.execute(sql, sql_dict)
< /code>
Der Tabellenname ist chartfield_data. Wenn ich in SQL_DICT einzelne Zitate in SQL_DICT verwendete, erhalte ich einen Fehler, der besagt, dass der Tabellenname in der SQL -Abfrage Backticks oder für sich selbst erforderlich ist, weil er als Zeichenfolge 'chartfield_data' liest, was falsch ist. Ich versuche die einzelnen Zitate wie SO zu entfernen: < /p>
sql_dict = {'table': chartfield_data}
< /code>
Aber das gibt mir Fehler "chartfield_data ist nicht definiert", da es als Variable gelesen wird.sql_dict = {'table': `chartfield_data`}
< /code>
Aber das funktioniert nicht mit Python 3.x.
Ich habe zuletzt versucht, Repr () zu verwenden, wie SO: < /p>
sql_dict = {'table': repr(chartfield_data)}
< /code>
, aber das warf auch einen Fehler. Gibt es sowieso den Tabellennamen als Variable in der Abfrage und übergeben ihn in die Abfrage außerhalb davon? Jede Hilfe wäre sehr geschätzt!

Top