Python:如何摆脱str(dict)中的空格?

时间:2016-09-01 10:20:57

标签: python

例如,如果在dict上使用str(),则得到:

>>> str({'a': 1, 'b': 'as df'})
"{'a': 1, 'b': 'as df'}"

但是,我希望字符串如下:

"{'a':1,'b':'as df'}"

我该如何做到这一点?

2 个答案:

答案 0 :(得分:8)

您可以自己构建紧凑的字符串表示:

In [9]: '{' + ','.join('{0!r}:{1!r}'.format(*x) for x in dct.items()) + '}'
Out[9]: "{'b':'as df','a':1}"

它会在嵌套list s,dict等的字符串表示中留出额外的空格。

更好的想法是将json.dumps函数与适当的分隔符一起使用:

In [15]: import json

In [16]: json.dumps(dct, separators=(',', ':'))
Out[16]: '{"b":"as df","a":1}'

无论dct的内部结构如何,这都能正常工作。

答案 1 :(得分:0)

有两个自然发生的空间。 ': '", "。所以我认为您可以使用replace

替换它们
str({'a': 1, 'b': 'as df'}).replace(": ", ":").replace(", ", ",")

注意:要使用此解决方案,请假设您在字典的任何值或键中没有:,