如何删除字典字符串表示形式中的值周围的引号?

时间:2020-02-26 10:28:26

标签: python dictionary repr

如何不在字符串周围打印引号?我知道这是一个字符串,因此Python正在添加引号。

提供更多背景信息:

def a(content):
    return {'row_contents': content}

print(a("Hello"))

这给出的输出为:

{'row_contents': 'Hello'}

我想在返回此字符时删除 Hello 周围的引号(如下所示)

{'row_contents': Hello}

有没有简单的方法来实现这一目标?

3 个答案:

答案 0 :(得分:1)

您只需获取字典的字符串表示形式并删除单引号即可。

def a(content):
    return {'row_contents': content}

def print_dict_without_quotes(d):
    print(str(d).replace("'", "").replace('"', ''))

print_dict_without_quotes(a("Hello"))

输出:

{row_contents: Hello}

答案 1 :(得分:1)

您可以使用f string

def a(content):
    return f"{{'row_contents': {content}}}"


print(a("Hello"))

或仅此:

def a(content):
    return "{'row_contents':"+content+"}"

输出:

{'row_contents': Hello}

答案 2 :(得分:0)

我仍然相信这个问题很有可能是XY problem

但是,就目前的问题而言:如果您不想修改view.tag = 1 ,则只剩下修改函数print的返回值。您在上面的评论中说:

我想返回一个a

这听起来像只是返回修改后的字符串表示形式dict并不是您真正想要的。但是,{'row_contents': content}本身是只读的,所以我猜最接近的解决方案是返回自定义dict.__repr__子类的实例:

dict

哪些印刷品:

class CustomDict(dict):
    def __repr__(self):
        return "{" + ", ".join([repr(k) + ": " + str(v) for k, v in self.items()]) + "}"

def a(content):
    return CustomDict({'row_contents': content})

print(a("Hello"))
print(isinstance(a("Hello"), dict))

您可能需要改进{'row_contents': Hello} True ,具体取决于需要进行哪些修改才能提供所需的输出。您还可以修改原始字符串表示形式CustomDict.__repr__