Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中将JSON结构中的单引号转换为双引号的最佳方法_Python_Json - Fatal编程技术网

Python中将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("'", '"'

我必须解析一个包含另一个嵌入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("'", '"') + 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)