我正在格式化并將字串附加到串列中,但 ref() 函式(在 dbt 中使用)不是字串,因此我需要洗掉外部引號,同時保留內部單引號。
我試圖鏈接 strip() 和 replace() 但都沒有解決問題。
當前代碼:
{% for result in results_list %}
{% set result = "ref('{}')".format(result) %}
{{ ref_format_results.append(result) }}
{% endfor %}
{% do log(ref_format_results, info=true) %}
電流輸出:
["ref('model_a')","ref('model_b')","ref('model_c')"]
期望的輸出:
[ref('model_a'),ref('model_b'),ref('model_c')]
uj5u.com熱心網友回復:
您正在創建一個字串,該字串需要以某種方式分隔,并且在列印/記錄時始終顯示外部引號。
如果您將這些值模板化到另一個檔案或字串中,那么您已經擁有了您想要的東西。
{% for r in ref_format_results %}
select * from {{ "{{" ~ r ~ "}}" }};
{% endfor %}
將產生:
select * from {{ ref('model_a') }};
select * from {{ ref('model_b') }};
select * from {{ ref('model_c') }};
但更重要的是,為什么首先將結果設定為字串?您是否試圖延遲ref()宏的執行?如果沒有,這會很好,給你一個評估的參考串列(它們是關系):
{% for result in results_list %}
{% set result = ref(result) %}
{{ ref_format_results.append(result) }}
{% endfor %}
{% do log(ref_format_results, info=true) %}
輸出:
['"my_db"."my_schema"."model_a"', '"my_db"."my_schema"."model_b"', '"my_db"."my_schema"."model_c"']
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/488463.html
上一篇:用R中從負到正的數字線填充向量
