4

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

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

w/JjMM0gNl

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

w\\/JjMM0gNl

使用各种方法进行编码/解码并不能解决这个问题,我想知道我能做些什么来解决这个问题。如果您不熟悉 arango,则数据以 json 形式返回。

4

1 回答 1

3

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

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

未转义:

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

逃脱:

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

当取回这样的转义数据时,解码器需要处理\前面的/并忽略它们。我认为大多数解码器并不关心正斜杠是否被转义,至少他们在正斜杠被转义和没有正斜杠的情况下愉快地解析 JSON 数据。

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

继续:您能否验证来自服务器的 JSON 响应是否真的正确?如果是,那么您可以尝试使用独立的 python 程序,您的解码器是否正确处理此类字符串的编码/解码?

于 2013-08-29T07:33:13.703 回答