Python中将JSON结构中的单引号转换为双引号的最佳方法
我必须解析一个包含另一个嵌入JSON结构的JSON结构。转换引号最干净的方法是什么?我想出了这个方法,但想知道是否有现成的方法Python中将JSON结构中的单引号转换为双引号的最佳方法,python,json,Python,Json,我必须解析一个包含另一个嵌入JSON结构的JSON结构。转换引号最干净的方法是什么?我想出了这个方法,但想知道是否有现成的方法 def clean(): kk = """{'id': 'pq-123', 'content': "{'a': 'xyz-123'}", 'img': 'flash.jpg'}""" st = kk.find('"') end = 1 + st + kk[st+1:].find('"') x = kk[0:st].replace("'", '"'
def clean():
kk = """{'id': 'pq-123', 'content': "{'a': 'xyz-123'}", 'img': 'flash.jpg'}"""
st = kk.find('"')
end = 1 + st + kk[st+1:].find('"')
x = kk[0:st].replace("'", '"') + kk[st] + kk[st+1:end+1] + kk[end+1:].replace("'", '"')
return x
正如您可能知道的那样,这不是JSON,这可能就是您希望进行所要求的转换的原因。但它是一个有效的Python文本,可以由ast.literal\u eval解析:
kk是从哪里来的?可能无法完美工作,但使用eval可能会很好。在kk上调用eval,然后kk['content']=evalk['content']。然后可以使用内置的json.dump或json.dumps将其转换为json。@kimbo是的,邪恶可以工作。不应该允许这样做。有非常,非常少的情况下,邪恶是值得的;这不是其中之一你确定一开始你不是在看Python dict,也许已经从JSON响应中解码了?@Adaman我从未使用过ast.literal\u eval,但它看起来更安全。谢谢你的信息!对于其他问题,请参阅此问题以了解更多详细信息
import ast
import json
data = ast.literal_eval(kk)
valid_json = json.dumps(data)