我有一个json配置文件,其中存储了数据路径
数据以月和日为单位进行存储,因此如果没有json,我将使用如下的f字符串:
spark.read.parquet(f"home/data/month={MONTH}/day={DAY}")
现在我想从json中提取它。但是,我遇到了Month和day变量的问题。我不想在json中分割路径。但是这样写:
{
"path":"home/data/month={MONTH}/day={DAY}"
}
并加载:
DAY="1"
MONTH="12"
conf_path=pandas.read_json("...")
path=conf_path["path"]
data=spark.read_parquet(f"{path}")
实际上并不起作用。
你能告诉我一个解决方案吗?检索一个带有变量元素的路径并在阅读后填充它们?你将如何存储路径或检索它而不拆分路径?谢谢
-------编辑:解决方案-------
感谢下面Deepak Tripathi的回答,答案是使用字符串格式。
代码如下:
day="1"
month="12"
conf_path=pandas.read_json("...")
path=conf_path["path"]
data=spark.read_parquet(path.format(MONTH=month, DAY=day))
1条答案
按热度按时间bf1o4zei1#
您应该使用string.format()而不是
f-strings
如果你想使用f-strings,那么你应该像这样使用
eval
,它不安全