我在单引号中有一个带键值对的词典,如下所示:
filename = 'sub-310621_task-EMOTION_acq-LR_bold.nii.gz'
intended_for ={"IntendedFor", filename}
我想把这个字典写成一个json文件,我必须在两个引号之间有文件名,例如:“sub-310621_task-EMOTION_acq-LR_bold.nii.gz”
所以输出应该是这样的:
intended_for ={"IntendedFor", "sub-310621_task-EMOTION_acq-LR_bold.nii.gz"}
此输出将写入test.json文件,该文件应如下所示:
{
"IntendedFor": "sub-310621_task-EMOTION_acq-LR_bold.nii.gz"
}
我怎么能在python中做到这一点?
最佳答案 您应该使用
json模块进行编码,而不是尝试自己构建JSON字符串.
json.dumps()方法接受一个对象,例如带有键值对的字典,并将其转换为符合JSON的字符串,然后可以将其写入文件.
您使用逗号而不是冒号创建了一个集合,而不是字典:
intended_for = {"IntendedFor", filename}
输入的正确代码是
filename = 'sub-310621_task-EMOTION_acq-LR_bold.nii.gz'
intended_for ={"IntendedFor": filename}
然后你可以编码
import json
json_string = json.dumps(intended_for)