Python http响应解码

时间:2013-08-29 01:12:11

标签: python encoding python-3.3 arangodb

我目前正在为arangodb开发python3.3 api,并且在从arango的RESTful api请求内容时遇到HTTP响应中的以下问题。

具体示例与sha256密码的哈希值有关。 如果哈希密码的一部分是这样的:

w/JjMM0gNl

当我使用任何python http libs时,响应的格式如下:

w\\/JjMM0gNl

使用各种方法进行编码/解码并不能解决这个问题,我想知道我可以采取哪些措施来解决这个问题。如果您不熟悉arango,则数据将以json的形式返回。

1 个答案:

答案 0 :(得分:3)

原因可能是允许在JSON中转义正斜杠。

以下JSON中的正斜杠实际上可能会使用反斜杠进行转义。

未逸出:

{"foo/bar":"bar/baz"}

转义:

{"foo\/bar":"bar\/baz"}

当检索到这样的转义数据时,解码器需要处理\前面的/并忽略它们。我认为大多数解码器都不关心正斜杠是否被转义,至少它们正在快速解析JSON数据,而正斜杠被转义而没有。

在任何情况下,当您从解码器中将数据作为python对象检索回来时,转义字符应该消失。处理转义序列是一个任务编码器/解码器应该为您透明处理。

继续:如果来自服务器的JSON响应实际上是正确的,你可以通知吗?如果是,那么您是否可以尝试使用独立的python程序,无论您的解码是否正确处理此类字符串的编码/解码?