【发布时间】:2021-09-23 17:07:46
【问题描述】:
假设我在 python 中有一个 dict,如下所示:
original = {
"x": 1.0,
"y": "Floyd",
"z": "Floyd\'s friend Larry",
}
dict 得到 JSON 编码,然后写入一个 .ipynb 文件,当在浏览器中查看时,该文件将其美化以供人类使用。我想读取 .ipynb 文件并恢复原始字典。
.ipynb 文件在浏览器中查看时呈现如下:
renders_as = {
'x': 1.0,
'y': 'Floyd',
'z': "Floyd\'s friend Larry",
}
这是可以手动复制和粘贴的python dict,与原始字典等效。
但是,当我使用 python 读取 .ipynb 文件时,我得到了以下字符串:
'{\'x\': 1.0, \'y\': \'Floyd\', \'z\': \\"Floyd\'s friend Larry\\"}'
这不是正确的 JSON,所以我不能 json.loads,而且它不是一个可以使用类似 ast.load_literal 的字符串来分配的字符串,因为双反斜杠解析为行继续。
对我来说,获取此字符串并生成原始输入的最佳方法是什么,同时保护自己免受常见的字符串处理问题(例如处理潜在的嵌套引号)的影响?
【问题讨论】:
-
如何将json编码的dict写入.ipynb文件?你能分享一下minimal reproducible example吗?