我正在try 创建一个python字典,它将用作html文件中的java脚本变量,用于可视化目的.作为必要条件,我需要创建一个字典,其中所有名称都包含双引号,而不是Python使用的默认单引号.有没有一个简单而优雅的方法来实现这一点.

    couples = [
               ['jack', 'ilena'], 
               ['arun', 'maya'], 
               ['hari', 'aradhana'], 
               ['bill', 'samantha']]
    pairs = dict(couples)
    print pairs

Generated Output:

{'arun': 'maya', 'bill': 'samantha', 'jack': 'ilena', 'hari': 'aradhana'}

Expected Output:

{"arun": "maya", "bill": "samantha", "jack": "ilena", "hari": "aradhana"}

我知道,json.dumps(pairs)可以做到这一点,但字典作为一个整体被转换成一个字符串,这不是我所期望的.

P.S.:由于我处理的是嵌套字典,所以使用json还有其他方法可以做到这一点.

推荐答案

您可以使用json.dumps():

>>> 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

Python-3.x相关问答推荐

Pandas groupby基于索引的连续列值相等

如何使用Python将嵌套的XML转换为CSV

为什么在Python中使用RANDINT函数时会出现此TypeError?

为什么 tkinter 在 tkinter 窗口外计算鼠标事件?

Heroku 中的未知错误代码缺少一个或多个参数

如何在 histplot 中标记核密度估计

为什么 mypy 不适用于 sqlalchemy?

使用 pandas 数据帧映射到中转( node )点的跨容量请求

获取以特定字母开头的姓氏

pymongo 失败并出现错误未定义

如何确定一个类的元类?

Python 3.10 模式匹配 (PEP 634) - 字符串中的通配符

python setup.py egg_info mysqlclient

计数大于Pandas groupby 中的值的项目

python判断一个方法是否被调用而不模拟它

使用完整路径激活 conda 环境

没有名为urlparse的模块,但我没有使用 urlparse

Python 3.4 多处理队列比 Pipe 快,出乎意料

Python,Docker - ascii编解码器无法编码字符

如何从 Base64 转换为字符串 Python 3.2