【问题标题】:Python: remove double quotes from JSON dumpsPython:从 JSON 转储中删除双引号
【发布时间】:2013-09-09 23:37:25
【问题描述】:

我有一个数据库,它以以下格式将行作为列表返回:

data = ['(1000,"test value",0,0.00,0,0)', '(1001,"Another test value",0,0.00,0,0)']

之后,我使用json_str = json.dumps(data) 来获取 JSON 字符串。应用json.dumps() 后,我得到以下输出:

json_str = ["(1000,\"test value\",0,0.00,0,0)", "(1001,\"Another test value\",0,0.00,0,0)"]

但是,我需要以下格式的 JSON 字符串:

json_str = [(1000,\"test value\",0,0.00,0,0), (1001,\"Another test value\",0,0.00,0,0)]

所以基本上,我想删除周围的双引号。我尝试使用json_str = json_str.strip('"') 来完成此操作,但这不起作用。然后,我尝试了json_str = json_str.replace('"', ''),但这也删除了转义引号。

是否有人知道实现此目的的方法,或者 Python 中是否有类似于json.dumps() 的函数产生相同的结果,但没有周围的双引号?

【问题讨论】:

标签: python json


【解决方案1】:

您正在转储字符串列表,因此 json.dumps 完全符合您的要求。您的问题的相当丑陋的解决方案可能如下所示。

def split_and_convert(s):
    bits = s[1:-1].split(',')
    return (
        int(bits[0]), bits[1], float(bits[2]),
        float(bits[3]), float(bits[4]), float(bits[5])
    )

data_to_dump = [split_and_convert(s) for s in data]
json.dumps(data_to_dump)

【讨论】:

    猜你喜欢
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 1970-01-01
    相关资源
    最近更新 更多