0
我想從SQLAlchemy表中使用相同的標籤來重新聚合一些數據(例如,我想通過mytable.c來迭代以精確地獲取列名)。SQLAlchemy從列中獲取標籤名稱
我有一個看起來像一些支出數據如下:
| name | region | date | spending |
| John | A | .... | 123 |
| Jack | A | .... | 20 |
| Jill | B | .... | 240 |
我然後將它傳遞給現有的功能,我們有,通過聚集消費滿2個週期(使用case語句)和組區域:
grouped table:
| Region | Total (this period) | Total (last period) |
| A | 3048 | 1034 |
| B | 2058 | 900 |
該函數返回一個SQLAlchemy的查詢對象,我可以再使用子查詢()到重新查詢例如:
subquery = get_aggregated_data(original_table)
region_A_results = session.query(subquery).filter(subquery.c.region = 'A')
我想然後重新聚合此子查詢(將可以求和的每個列相加,用字符串'other'替換區域列。
的問題是,如果我通過subquery.c迭代,我得到的標籤,看起來像:
anon_1.region
anon_1.sum_this_period
anon_1.sum_last_period
是否有一種方式來獲得從一組列對象的文本標籤,無anon_1 。前綴?特別是因爲我覺得前綴可能會改變,這取決於SQLAlchemy決定如何生成查詢。
這正是我一直在尋找的。假設split('。')處理table.column split是否安全?到目前爲止,我已經看到由SQLAlchemy自動生成的所有表/列標籤都是蛇形的,但我認爲這是由於週期字符在涉及SQL表達式時是模式/表/列分隔符? – J3Y 2015-03-31 04:21:54
是的,'split('。')'應該很好地分割table.column標籤約定,它不會在意字符串是否爲蛇形或其他形式。 – 2015-03-31 04:30:04