我有一个数据库,它以以下格式将行返回为列表:
data = ['(1000,"test value",0,0.00,0,0)', '(1001,"Another test value",0,0.00,0,0)']
Run Code Online (Sandbox Code Playgroud)
之后,我用来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)"]
Run Code Online (Sandbox Code Playgroud)
但是,我需要以下格式的 JSON 字符串:
json_str = [(1000,\"test value\",0,0.00,0,0), (1001,\"Another test value\",0,0.00,0,0)]
Run Code Online (Sandbox Code Playgroud)
所以基本上,我想删除周围的双引号。我试图用它来完成这个任务,json_str = json_str.strip('"')但这不起作用。然后,我尝试了json_str = json_str.replace('"', ''),但这也删除了转义引号。
有谁知道实现此目的的方法,或者Python中是否有一个类似的函数json.dumps()可以产生相同的结果,但没有周围的双引号?
您正在转储字符串列表,因此 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)
Run Code Online (Sandbox Code Playgroud)