2

我需要创建 cronjob 来测试网站是否每隔一小时检索一次数据。

最初尝试将 json 数据粘贴到文本文件中,并通过编码和解码来验证数据。现在我需要在每次运行 cron 作业时加载实时数据(json 数据)。使用 urllib2 但它没有从 url 获得请求响应。

网址->加载时->通过萤火虫提供要执行的网址并从中获取json数据。我如何将这样的 url 导入或解析到 python 中。请举个例子。

我的步骤:创建时间表

     1.45 08 * * 1-5 /home/user/myfile/daily_verifydata.sh >> /home/user/cronlog.log 

daily_verifydata.sh

    #!/bin/sh
    python /home/user/path/Dashboard_test.py

Dashboard_test.py

    import json
    import urllib2

    f = open('test.txt','r') # open in read mode
    data = f.read()
    print data

    # How to Parse the json from the URL to python

    data_string = json.dumps(data)
    print '\n''ENCODED:', data_string

    decoded = json.loads(data_string)
    print '\n''DECODED:', decoded

    # Validating data through decoded output. 

如果可能通过 curl 解析,需要知道语法

谢谢,维杰

4

2 回答 2

1

要在 bash 脚本中检索 JSON — 您可以使用不错的工具httpie

如果你想从 python 脚本中提取 JSON——最好的选择是requests lib

对于验证,它很复杂——JSONSchema

于 2012-11-27T17:03:17.267 回答
1

我建议使用请求

import requests
import simplejson

session = requests.session()
# I presume your site has authentication
response = session.post(URL_TO_LOGIN, {
            'username': username,
            'password': password
        })
response = session.get(URL_TO_JSON)
if response.ok:
    simplejson.loads(response.text)
于 2012-11-27T17:00:18.833 回答