例如,如果在dict上使用str(),则得到:
>>> str({'a': 1, 'b': 'as df'})
"{'a': 1, 'b': 'as df'}"
但是,我希望字符串如下:
"{'a':1,'b':'as df'}"
我该如何做到这一点?
答案 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(", ", ",")
注意:要使用此解决方案,请假设您在字典的任何值或键中没有:
或,
。