从API调用中提取JSON值以用作变量

时间:2016-05-26 02:11:00

标签: python json api

我正在使用Indeeds API来抓取工作列表。他们的API每次调用只允许25个结果,这就是我必须遍历范围的原因。

我需要知道返回的结果数(对于范围),以用作我的numresults变量。现在我只是在浏览器中进行相同的搜索并手动输入结果。

我希望遍历多个国家/地区或搜索字词,因此我需要将值“totalResults”传递给在JSON中找到的numresults。

问题是我不明白如何提取这个值。

我可以在调用之后立即执行此操作(存储json的位置)还是首先需要创建JSON文件?

这是我的工作刮刀:

import requests
api_url = 'http://api.indeed.com/ads/apisearch? publisher=XXXXXXXXXXX&v=2&limit=100000&format=json'
Country = 'au'
SearchTerm = 'Insight'
number = -25
numresults = 3925
# must match the actual number of job results to the lower of the 25    increment or the last page will repeat over and over
#so if there are 392 results, then put 375

for number in range(-25, numresults, 25):
    url = api_url + '&co=' + Country + '&q=' + SearchTerm + '&start=' + str(number + 25)
    response = requests.get(url)
    f = open(SearchTerm + '_' + Country +'.json','a')
    f.write (response.content)
    f.close()
    print 'Complete' , url

以下是返回的JSON示例:

{
    "version" : 2,
    "query" : "Pricing",
    "location" : "",

    "dupefilter" : true,

    "highlight" : true,

    "start" : 1,
    "end" : 25,
    "totalResults" : 1712,

    "pageNumber" : 0,


    "results" : [

                {
                    "jobtitle" : "New Energy Technical Specialist",
                    "company" : "Rheem",
                     etc.

1 个答案:

答案 0 :(得分:0)

为什么不使用python json模块?

import json
# inside the loop, after the request.
json_content = json.loads(r.content)
print(json_content["version"]) # should display 2

请注意,请检查请求返回的内容是否为json格式。该文档位于:https://docs.python.org/2/library/json.html