0

是否有可能获得一个 python 字典,其中键包含在“”而不是“”中?

像这样的东西:

{"key_1":"value_1", .... , "key_n":"value_n"}

代替:

{'key_1':'value_1', .... , 'key_n':'value_n'}
4

5 回答 5

3

好吧,看起来你想要 JSON 格式而不是......所以也许:

>>> d = {"key_1":"value_1", "key_n":"value_n"}
>>> d
{'key_n': 'value_n', 'key_1': 'value_1'}
>>> import json
>>> json.dumps(d)
'{"key_n": "value_n", "key_1": "value_1"}'
于 2013-10-14T14:10:39.320 回答
1

是的。报价是完全可以互换的;您可以使用任何一个定义字典。您还可以使用三引号'''""".

于 2013-10-14T14:05:47.723 回答
1

在字典的字符串表示中强制使用双引号的最简单方法是将字典转换为 json。但是,这确实会丢失一些类型信息,因为(例如)数字键也将用双引号引起来:

>>> d = {'key_1':'value_1', 'key_n':'value_n'}
>>> import json
>>> json.dumps(d)
'{"key_1": "value_1", "key_n": "value_n"}'
>>> json.dumps({1:'a', 2:'b'})
'{"1": "a", "2": "b"}'

如果您想要双引号的原因是将结果字符串用于 JSON,那么这就是您想要的答案。另一方面,如果要求真的只是强制显示双引号,否则将其保留为字典,那么您可以做的最好的事情可能是编写自己的转换代码。

于 2013-10-14T14:13:40.487 回答
0

如果要打印字典,可以使用此代码段

print "{%s}" % ", ".join('"%s":"%s"' % pair for pair in D.items())
于 2013-10-14T14:56:24.577 回答
0

是的,除非字符串中有引号。单引号和双引号是一样的但是

如果出于某种原因我的其中一个键是我不知道:“不是”我会使用双引号。如果我的键有双引号,我会使用单引号。

编辑:我并不是说在关键标识符中加上引号是对还是错,我只是说如果这就是你所面临的现实,这是需要考虑的事情。

于 2013-10-14T14:07:06.243 回答