【发布时间】:2013-08-19 11:23:25
【问题描述】:
我正在尝试创建一个 python 字典,该字典将用作 html 文件中的 java script var 以实现可视化。作为必要条件,我需要创建所有名称都包含在双引号内的字典,而不是 Python 使用的默认单引号。有没有一种简单而优雅的方法来实现这一点。
couples = [
['jack', 'ilena'],
['arun', 'maya'],
['hari', 'aradhana'],
['bill', 'samantha']]
pairs = dict(couples)
print pairs
生成的输出:
{'arun': 'maya', 'bill': 'samantha', 'jack': 'ilena', 'hari': 'aradhana'}
预期输出:
{"arun": "maya", "bill": "samantha", "jack": "ilena", "hari": "aradhana"}
我知道,json.dumps(pairs) 完成了这项工作,但是整个字典被转换成一个字符串,这不是我所期望的。
P.S.:是否有另一种使用 json 的方法来做到这一点,因为我正在处理嵌套字典。
【问题讨论】:
-
当您要求打印字典时,无论如何您都在打印字典到字符串的转换,因此 JSON 是完全合适的——尤其是当您尝试与 Javascript 交换时。跨度>
-
你没有改变任何关于字典的东西。您正在创建它的字符串表示形式。字典不包含单引号。它包含字符串。您对字典是什么感到困惑。
-
@RussellBorogove:或者,更根本的是,对实际字符串对象与其表示之间的区别感到困惑。
-
@ArunprasathShankar 您需要解释为什么您认为将双引号作为默认设置是您唯一的选择。转换为 JSON 并不排除更多更新。如果有更多更新,您总是可以再次转换为 JSON,对吧?
-
这个问题似乎从根本上被误导了。 “print”关键字在字典上调用 __str__ 并将其转换为字符串,就像
json.dumps(pairs)所做的那样。 OP 显示了一个基本的误解,他/她说“但是整个字典被转换成一个字符串,这不是我所期望的。”其实,当你打印一个对象的时候,不管你怎么打印,都是先把对象转成字符串。
标签: python python-2.7 dictionary python-3.x