将字典的字符串表示转换为实际字典

2024-09-30 23:44:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个图像处理脚本。我需要让用户指定如何通过文本文件重新映射图像中的一些类。这个文件中的语法应该是简单而不言而喻的。我的想法是让用户编写字典的字符串版本:

125:126, 126:126, 127:128, 128:128

然后把它转换成真正的字典(这是缺失的一环):

^{pr2}$

图像类的重新映射将按如下方式进行:

u, indices = numpy.unique(image, return_inverse=True)
for i in range(0, len(u)):
    u[i] = a[u[i]]
updatedimage = u[indices]
updatedimage = numpy.resize(updatedimage, (height, width)) #Resize to original dims

有没有一种简单的方法来完成从“字符串版本”到真正字典的转换?你能想出一个更简单/可供选择的单行语法供用户使用吗?在


Tags: 文件字符串用户图像版本numpy脚本字典
1条回答
网友
1楼 · 发布于 2024-09-30 23:44:15

您可以使用^{}

>>> import ast
>>> ast.literal_eval('{' + s + '}')
{128: 128, 125: 126, 126: 126, 127: 128}

请注意,这需要Python2.6或更高版本。在

另一种方法是在','上拆分字符串,然后在':'上拆分每个片段,然后从中构造一个dict

^{pr2}$

这两个示例都假定初始字符串位于名为s的变量中:

>>> s = '125:126, 126:126, 127:128, 128:128'

相关问题 更多 >