更多pythonic方法从元组列表格式化JSON字符串

Cha*_*eck 6 python json tuples list

目前我这样做:

def getJSONString(lst):
    join = ""
    rs = "{"
    for i in lst:
        rs += join + '"' + str(i[0]) + '":"' + str(i[1]) + '"'
        join = ","
    return rs + "}"
Run Code Online (Sandbox Code Playgroud)

我称之为:

rs = getJSONString([("name", "value"), ("name2", "value2")])
Run Code Online (Sandbox Code Playgroud)

它不需要嵌套(它只是一个简单的名称值对列表).但我愿意以不同的方式调用函数.这一切看起来有点笨拙,有更优雅的方式吗?这需要在2.x下运行.

请注意,这不是重复:Python - 将元组列表转换为字符串(除非可以修改该答案以创建JSON字符串作为输出).

编辑:将名称值对作为字典传递会更好吗?

Mar*_*ers 22

有一种更好的方法来生成JSON字符串:json模块.

import json
rs = json.dumps(dict(lst))
Run Code Online (Sandbox Code Playgroud)

这利用了dict()可以采用一系列键值对(双值元组)并将其转换为映射的事实,json模块直接将其转换为JSON对象结构.

示范:

>>> import json
>>> lst = [("name", "value"), ("name2", "value2")]
>>> rs = json.dumps(dict(lst))
>>> print rs
{"name2": "value2", "name": "value"}
Run Code Online (Sandbox Code Playgroud)