我正在使用 fabric 从远程服务器上的文件中读取 json:
from StringIO import StringIO
output = StringIO()
get(file_name, output)
output = output.getvalue()
output
的值现在是:
'"{\\n\\"status\\":\\"failed\\",\\n\\"reason\\":\\"Record already
存在。\\"\\n}"'
当我尝试使用 json.loads(output)
将此字符串解析为字典时,它返回 unicode 对象 u'{\n "status": "failed",\n "reason": "Record already exists."\n}'
而不是字典。
我想出了一个相当糟糕的修复方法,只是将新的 unicode 对象传递回 json.loads():
json.loads(json.loads(输出))
有没有其他办法解决这个问题?
干杯
最佳答案
您的数据已转义。
json.loads(output.decode('string-escape').strip('"'))
应该给你想要的结果:
Out[12]: {'reason': 'Record already exists.', 'status': 'failed'}
关于python - json.loads() 返回一个 unicode 对象而不是一个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22600128/