我目前正在为arangodb开发python3.3 api,并且在从arango的RESTful api请求内容时遇到HTTP响应中的以下问题。
具体示例与sha256密码的哈希值有关。 如果哈希密码的一部分是这样的:
w/JjMM0gNl
当我使用任何python http libs时,响应的格式如下:
w\\/JjMM0gNl
使用各种方法进行编码/解码并不能解决这个问题,我想知道我可以采取哪些措施来解决这个问题。如果您不熟悉arango,则数据将以json的形式返回。
答案 0 :(得分:3)
原因可能是允许在JSON中转义正斜杠。
以下JSON中的正斜杠实际上可能会使用反斜杠进行转义。
未逸出:
{"foo/bar":"bar/baz"}
转义:
{"foo\/bar":"bar\/baz"}
当检索到这样的转义数据时,解码器需要处理\
前面的/
并忽略它们。我认为大多数解码器都不关心正斜杠是否被转义,至少它们正在快速解析JSON数据,而正斜杠被转义而没有。
在任何情况下,当您从解码器中将数据作为python对象检索回来时,转义字符应该消失。处理转义序列是一个任务编码器/解码器应该为您透明处理。
继续:如果来自服务器的JSON响应实际上是正确的,你可以通知吗?如果是,那么您是否可以尝试使用独立的python程序,无论您的解码是否正确处理此类字符串的编码/解码?