我在用
httplib.HTTPConnection(self._myurl)
conn.request("GET", "/")
data = conn.getresponse().read()
现在这个 URL 返回一个类似于下面的 python 类型数组:
[1,"apple",23,"good"]
[2,"grape",4,"bad"]
现在我从服务中得到这个结果作为数据中的字符串。我如何立即将这个结果解析/编码为数组/列表,而不必自己剖析它并创建一个数组?
我在用
httplib.HTTPConnection(self._myurl)
conn.request("GET", "/")
data = conn.getresponse().read()
现在这个 URL 返回一个类似于下面的 python 类型数组:
[1,"apple",23,"good"]
[2,"grape",4,"bad"]
现在我从服务中得到这个结果作为数据中的字符串。我如何立即将这个结果解析/编码为数组/列表,而不必自己剖析它并创建一个数组?
如果服务器返回JSON(看起来可能是这样),这很简单:
import json
# ... snip ...
rehydrated_data = json.loads(data)
[更新]
服务实际上是为流而不是批量数据而设计的。这就是为什么我实际上得到的是对象数组而不是数组对象数组。
我最终使用以下逻辑在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)