如何创建以双引号作为默认引号格式的Python字典?

2024-09-23 04:20:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个python字典,它将用作html文件中的java脚本变量,用于可视化目的。作为必要条件,我需要创建一个字典,其中所有的名字都在双引号中,而不是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,因为我处理的是嵌套字典。


Tags: 文件方法json字典htmljackbillmaya
3条回答

您可以使用json.dumps()构造自己的dict版本,并进行特殊打印:

>>> import json
>>> class mydict(dict):
        def __str__(self):
            return json.dumps(self)

>>> couples = [['jack', 'ilena'], 
               ['arun', 'maya'], 
               ['hari', 'aradhana'], 
               ['bill', 'samantha']]    

>>> pairs =  mydict(couples) 
>>> print pairs
{"arun": "maya", "bill": "samantha", "jack": "ilena", "hari": "aradhana"}

您还可以迭代:

>>> for el in pairs:
       print el

arun
bill
jack
hari

这是一个基本的print版本:

>>> print '{%s}' % ', '.join(['"%s": "%s"' % (k, v) for k, v in pairs.items()])
{"arun": "maya", "bill": "samantha", "jack": "ilena", "hari": "aradhana"}

这里需要的是json.dumps(),如果使用print json.dumps(pairs),您将获得预期的输出:

>>> pairs = {'arun': 'maya', 'bill': 'samantha', 'jack': 'ilena', 'hari': 'aradhana'}
>>> print pairs
{'arun': 'maya', 'bill': 'samantha', 'jack': 'ilena', 'hari': 'aradhana'}
>>> import json
>>> print json.dumps(pairs)
{"arun": "maya", "bill": "samantha", "jack": "ilena", "hari": "aradhana"}

相关问题 更多 >