使用Cookiecutter构建R项目模板:JSON null转R的NULL问题求助
方法1:直接在cookiecutter.json中指定字符串"NULL"
将cookiecutter.json里的"var3": null改为"var3": "NULL",利用字符串直接输出R的NULL关键字,无需额外处理模板逻辑。
示例cookiecutter.json:
{ "var1": "var1", "var2": "var2", "var3": "NULL" }
原R模板代码无需修改,渲染后会生成符合要求的代码:
df %>% select( var1, var2, NULL )
方法2:在Jinja2模板中添加条件判断逻辑
如果需要保留cookiecutter.json里的null值(用于其他场景判断),可以在R模板中通过Jinja2的条件语句动态转换:
修改后的R模板代码:
df %>% select( {{ cookiecutter.var1 }}, {{ cookiecutter.var2 }}, {{ 'NULL' if cookiecutter.var3 is none else cookiecutter.var3 }} )
当cookiecutter.json中var3为null时,模板会渲染出R的NULL;若var3是具体列名,则直接输出列名。
也可简化为or逻辑(注意:若var3可能为空字符串则不适用):
df %>% select( {{ cookiecutter.var1 }}, {{ cookiecutter.var2 }}, {{ cookiecutter.var3 or 'NULL' }} )
内容的提问来源于stack exchange,提问作者Revan
相关产品推荐
相关产品推荐

