如何将变量值传递给python中的字符串

时间:2018-12-29 06:50:34

标签: python

我要从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"

6 个答案:

答案 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”