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

dsp*_*pjm 3 python

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

>>> str({'a': 1, 'b': 'as df'})
"{'a': 1, 'b': 'as df'}"
Run Code Online (Sandbox Code Playgroud)

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

"{'a':1,'b':'as df'}"
Run Code Online (Sandbox Code Playgroud)

我怎么能做到这一点?

vau*_*tah 8

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

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

它将在嵌套lists,dicts等的字符串表示中留出额外的空格.

更好的想法是使用json.dumps具有适当分隔符的函数:

In [15]: import json

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

无论内部结构如何,这都将正常工作dct.

  • 这个.如果输出是json,**请**使用`json.dumps`.如果它打算是其他任何格式,****使用适当的序列化功能.作为最后的手段,自己动手吧. (3认同)