如何将用户输入值嵌入已存在字符串的ability_id字段中?
问题修正与正确实现
你的代码存在语法错误,且手动拼接JSON字符串易引发格式问题,以下是修正及优化方案:
原始代码的问题
input("Enter an ability id)缺少闭合双引号,会触发语法错误- 试图在单引号字符串内嵌套f-string的写法无效,
f"{ability_id}"会被当作普通文本输出,无法替换为变量值
正确实现方式
方式1:使用f-string构建JSON字符串
需给外层字符串添加f前缀,同时转义内部双引号以符合JSON格式要求:
def main(): ability_id = input("Enter an ability id: ") # example:abc-123-abc-123 data = f'{{"paw":"1234","ability_id":"{ability_id}","obfuscator":"plain-text"}}' print(data) main()
方式2:使用str.format()方法
def main(): ability_id = input("Enter an ability id: ") data = '{{"paw":"1234","ability_id":"{}","obfuscator":"plain-text"}}'.format(ability_id) print(data)
方式3:推荐使用json模块(规避手动拼接风险)
手动拼接JSON易出现引号转义、格式错误等问题,json.dumps()可自动处理这些细节:
import json def main(): ability_id = input("Enter an ability id: ") data_dict = { "paw": "1234", "ability_id": ability_id, "obfuscator": "plain-text" } data = json.dumps(data_dict) print(data)
内容的提问来源于stack exchange,提问作者sretkaya
相关产品推荐
相关产品推荐

