2011-05-15 81 views
1

偶尔我会查询服务器的JSON并在请求的数据不可用时收到404 HTML页面。如何使用simplejson验证JSON

因此,我必须检查以确保我期待的JSON实际上是json而不是HTML。我现在通过检查一个字符串来实现这一点,我期望在HTML中包含在响应中,但我认为必须有更好的方法来做到这一点。

+0

,你能否告诉我们,真实查询码? – 2011-05-15 22:12:26

+0

我很困惑。这听起来像你想在浏览器中验证,但simplejson是你会用来在服务器上验证的东西。你想达到什么目的? – mikerobi 2011-05-15 22:16:01

回答

0

你应该能够告诉你收到了404,因为响应代码不是200那就是:

import urllib 
resp = urllib.urlopen('http://example.com/') 

if resp.getcode() == 200: 
    rejoice() 
if resp.getcode() == 404: 
    sulk() 
+0

检查404是明确的,仅供说明。实际上,你应该检查响应> = 400,因为任何这样的值代表一个错误条件,除非你知道如何真正解决特定的错误,它们应该传播给调用者。 – SingleNegationElimination 2011-05-15 22:36:48

2

找到第一个非空白字符。如果它是“<”,那么你有HTML。

此外,请检查内容类型标头和HTTP状态代码。

+0

+1内容类型标头 – 2011-05-15 22:15:54