我要从json文件中读取一个字符串,并为其赋值以使其成为可配置文件名。
我正在从json中读取字符串:
data_file_format = "sourcesystem_batchid_extractname_loadtype"
我有一个变量,可以保存代码中的值,例如
sourcesystem ="xyz"
batchid = "101"
extractname = "abc"
loadtype = "Delta"
所以我的data_file_format应该像这样
data_file_format = "xyz_101_abc_Delta"
答案 0 :(得分:2)
sourcesystem ="xyz"
batchid = "101"
extractname = "abc"
loadtype = "Delta"
data_file_format="_".join([sourcesystem,batchid,extractname,loadtype])
#or
#data_file_format=sourcesystem+'_'+batchid +'_'+extractname+'_'+loadtype
print(data_file_format)
答案 1 :(得分:2)
有多种方法可以做到这一点。
fstring
data_file_format = f'{sourcesystem}_{batchid}_{extractname}_{loadtype}'
或使用.format
data_file_format = '{}_{}_{}_{}'.format(sourcetype,batchid,extractname,loadtype)
答案 2 :(得分:2)
因此,您需要根据输入data_file_format
动态生成文件名。您可以将数据存储在dict中而不是单独的变量中吗?
data_file_format = "sourcesystem_batchid_extractname_loadtype"
data = {
"sourcesystem": "xyz",
"batchid": "101",
"extractname": "abc",
"loadtype": "Delta"
}
filename = '_'.join([data[key] for key in data_file_format.split('_')])
print(filename)
xyz_101_abc_Delta
答案 3 :(得分:0)
或者您也可以像这样基本走下去
data_file_format = datasourcesystem + "_" + batchid + "_" + extractname + "_" + loadtype
前面的答案也不远。它只是忘记了下划线
答案 4 :(得分:0)
.join
是这种情况下的最佳答案(按位排列)。但是,将来有一些好的方法:
>>> a = 1
>>> b = 2
>>> c = "three"
>>> "%d and %d then %s" % (a, b, c)
1 and 2 then three
>>> "{} and {} then {}".format(a, b, c)
1 and 2 then three
>>> f"{a} and {b} then {c}"
1 and 2 then three
答案 5 :(得分:-1)
您可以使用+
在python中连接字符串
data_file_format = sourcesystem + "_" + batchid + "_" + extractname + "_" + loadtype
这应该给您“ xyz_101_abc_Delta”