将字典键/值对的单引号转换为双引号

Kas*_*hwa 6 python json dictionary

我有一个用单引号括起来的键值对的字典,如下所示:

filename = 'sub-310621_task-EMOTION_acq-LR_bold.nii.gz'
intended_for ={"IntendedFor", filename}
Run Code Online (Sandbox Code Playgroud)

因为我想将此字典写入 json 文件,所以我必须在两个引号之间添加文件名,例如: "sub-310621_task-EMOTION_acq-LR_bold.nii.gz"

所以输出应该是这样的:

intended_for ={"IntendedFor", "sub-310621_task-EMOTION_acq-LR_bold.nii.gz"}
Run Code Online (Sandbox Code Playgroud)

此输出将写入 test.json 文件,该文件应如下所示:

{
    "IntendedFor": "sub-310621_task-EMOTION_acq-LR_bold.nii.gz"
}
Run Code Online (Sandbox Code Playgroud)

我怎么能在 python 中做到这一点?

use*_*ica 5

基于文字的端部的单引号或双引号中不包括该串中-'asdf'"asdf"代表相同的字符串。字典中的键和值实际上都不包含字符'or ",因此您不需要执行转换。

当您将 dict 转储到 JSON 时,您的 JSON 转储程序将自动用"字符包围字符串,以及其他必要的转义。例如,如果您正在使用该json模块,则可以执行以下操作

json_string = json.dumps(intended_for)
Run Code Online (Sandbox Code Playgroud)

生成格式正确的 JSON 字符串。(如果这不起作用,您还有其他一些没有向我们展示的错误。)


Dav*_*vid 5

与其尝试自己构建 JSON 字符串,不如使用json模块进行编码。

json.dumps()方法接受一个对象,例如带有键值对的字典,并将其转换为符合 JSON 的字符串,然后可以将其写入文件。

您使用逗号,而不是冒号创建了一个集合,而不是字典:

intended_for = {"IntendedFor", filename}
Run Code Online (Sandbox Code Playgroud)

您输入的正确代码是

filename = 'sub-310621_task-EMOTION_acq-LR_bold.nii.gz'
intended_for ={"IntendedFor": filename}
Run Code Online (Sandbox Code Playgroud)

然后你可以编码

import json
json_string = json.dumps(intended_for)
Run Code Online (Sandbox Code Playgroud)