Python变量打印为字符串问题:如何输出CURRENT_JSON中变量实际值?
解决字符串变量不替换的问题
你当前的代码用单引号定义字符串,Python不会自动解析其中的{变量名}占位符,只会原样输出。可以用以下几种方式解决:
方法一:使用f-string(Python 3.6及以上)
在字符串前加上f前缀,Python会自动将{}中的变量替换为实际值。注意JSON里的大括号需要用{{和}}转义:
CURRENT_JSON = f'{{"ChunkName": "{ChunkName}", "ChunkData": {{"ChunkId": "{ChunkId}", "MasterData": [{{"Line": "{m}", "LData": "{LINE}"}}]} }}'
方法二:使用str.format()方法
适用于Python 3.5及以下版本,通过format()方法传入变量值:
CURRENT_JSON = '{{"ChunkName": "{ChunkName}", "ChunkData": {{"ChunkId": "{ChunkId}", "MasterData": [{{"Line": "{m}", "LData": "{LINE}"}}]} }}'.format( ChunkName=ChunkName, ChunkId=ChunkId, m=m, LINE=LINE )
方法三:用json模块生成JSON(推荐)
手动拼接JSON字符串容易出错,更规范的方式是先构造Python字典,再用json.dumps()转换为JSON字符串:
import json # 先构造数据字典 data = { "ChunkName": ChunkName, "ChunkData": { "ChunkId": ChunkId, "MasterData": [{"Line": m, "LData": LINE}] } } # 转换为JSON字符串 CURRENT_JSON = json.dumps(data)
内容的提问来源于stack exchange,提问作者Saga Harby
相关产品推荐
相关产品推荐

