0

我在用

httplib.HTTPConnection(self._myurl)
conn.request("GET", "/")
data = conn.getresponse().read()

现在这个 URL 返回一个类似于下面的 python 类型数组:

[1,"apple",23,"good"]
[2,"grape",4,"bad"]

现在我从服务中得到这个结果作为数据中的字符串。我如何立即将这个结果解析/编码为数组/列表,而不必自己剖析它并创建一个数组?

4

2 回答 2

3

如果服务器返回JSON(看起来可能是这样),这很简单:

import json

# ... snip ...

rehydrated_data = json.loads(data)
于 2013-06-11T16:36:32.363 回答
0

[更新]
服务实际上是为流而不是批量数据而设计的。这就是为什么我实际上得到的是对象数组而不是数组对象数组。

我最终使用以下逻辑在javascript端处理了它。

1. data = data.replace(']','],')
2. data = '[' + data.rstrip(',') + ']'
3. data = json.loads(data)

回复上面的回答
其实不是,json会是

{"key":[[...],[...]]}

我已经尝试了代码,但它失败并出现以下错误。

...
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 326, in loads
    return _default_decoder.decode(s)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 369, in decode
    raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 2 column 1 - line 38 column 119 (char 25 - 4048)
于 2013-06-11T21:55:16.000 回答