【发布时间】:2020-02-07 10:55:54
【问题描述】:
我正在 Python 3.6.6 中创建一个字典字符串(稍后添加到 .txt 文件中)。
当我硬编码字典的字符串时,我没有遇到任何问题:
my_string = '{"source": "s3://some_s3_bucket/random_filename.csv"} \n'
print(my_string)
输出
{“来源”:“s3://some_s3_bucket/random_filename.csv”}
但是,当我尝试用硬编码的文件路径替换变量时,Python 似乎开始假设“源”是我要替换的变量:
bucket = "some_s3_bucket"
filename = "random_filename.csv"
my_new_string = '{"source": "s3://{0}/{1}"} \n'.format(bucket, filename)
print(my_new_string)
输出
KeyError Traceback(最近一次调用最后一次) 在模块
--> 1 my_new_string = '{"source": "s3://{0}/{1}"} \n'.format(bucket, filename)
2 打印(my_new_string)KeyError: '"source"'
我应该如何格式化这个字符串以便 Python 正确读取我的 bucket 和 filename 变量?
【问题讨论】:
-
你可以简单地使用旧的格式化方式:
my_new_string = '{"source": "s3://%s/%s"} \n' % (bucket, filename)
标签: python python-3.x