Ես օգտագործում եմ SQLAlchemy-ը բուրգի միջոցով՝ մուտք գործելով պարզ sqlite տվյալների բազա:
Երբ ես կառուցում էի իմ աստիճանաբար ավելի բարդ հարցումները, ստացա այս նախազգուշացումը.
ԶԳՈՒՇԱՑՈՒՄ. sqlite+pysqlite բարբառը չի աջակցում տասնորդական օբյեկտներին, և SQLAlchemy-ը պետք է փոխարկվի լողացող կետից. կլորացման սխալներ և այլ խնդիրներ կարող են առաջանալ: Խնդրում ենք հաշվի առնել տասնորդական թվերը որպես տողեր կամ ամբողջ թվեր այս հարթակում անկորուստ պահեստավորման համար:
Իմ հարցումներից մեկը սա է անում (վերափոխում).
session.query(subquery.c.a*100.0/(subquery.c.b+subquery.c.c))
Այս դեպքում ենթհարցումը ենթհարցման անունն է, իսկ a, b և c-ն ամբողջ թվեր են:
Ես չեմ պահպանում հարցման արդյունքը կամ կատարում որևէ պարտավորություն, սա զուտ տվյալների արդյունահանում/հարցում է, հետևաբար ես զարմացա, երբ բարձրացվեց վերը նշված նախազգուշացումը: Ինչպե՞ս կարող եմ անտեսել այս նախազգուշացումը՝ առանց այն ամբողջությամբ զտելու (այն դեպքում, երբ ապագայում ես պատահաբար պահեմ տասնորդական տվյալները տվյալների բազայում):
type_api
, այլsqltypes
տեսակը, ինձ մոտ նույնպես ռեգեքսը չաշխատեց։ Ինձ համար սա աշխատեց՝warnings.filterwarnings('ignore', r".*support Decimal objects natively", SAWarning, r'^sqlalchemy\.sql\.sqltypes$')
24.07.2018