【发布时间】:2015-08-18 04:27:12
【问题描述】:
我在地理编码过程中使用请求来循环大量文本并返回坐标,如下所示:
for t in text:
payload = {"q":t}
located = requests.get("http://localhost:8999/CLIFF-2.1.1/parse/text", params=payload)
l = located.json()
for i in l['results']['places']['focus']:
print i['name']
print i['lat']
print i['lon']
在大多数情况下,这可以正常工作,但在某些情况下No JSON object could be decoded。有没有办法跳过这段 JSON 并继续迭代? (也许是一个while循环?)
这可能是一个非常简单的问题,但我似乎无法找到答案......而且可能是我处理这一切都错了。让我知道是否有任何需要澄清的地方。提前致谢!
顺便说一句,text 是由另一个函数生成的文本对象列表。
【问题讨论】:
-
有没有办法跳过这段 JSON 并继续迭代? 我相当肯定异常发生在
located.json()调用中,所以没有进位在迭代。如果 json 错误,您要么必须捕获异常并跳过所有内容,要么自己编写 json 解析器 -
好的,谢谢。我必须找到另一种方法来做到这一点......
-
您可能还想检查
located.status_code,看看如果没有返回 JSON 是否有任何区别。 -
我检查了
status_code和raise_for_status并得到了requests.exceptions.HTTPError: 400 Client Error: Bad Request。事情是我已经知道这是一个糟糕的要求!不太确定从这里到哪里去。
标签: json python-2.7 python-requests