Indeed Ruby API와 상호 작용할 수있는 작은 프로그램을 작성했습니다.API에서 해시 배열에서 반환 된 데이터를 추출하는 방법
하나의 직책을 인쇄 할 수 있지만 모든 직책을 반복하고 싶습니다. 여기
코드입니다 :require 'nokogiri'
require 'indeed-ruby'
client = Indeed::Client.new ("PUBLISHER_KEY_GOES_HERE")
params = {
:q => 'python',
:l => 'vancouver',
:userip => '1.2.3.4',
:useragent => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2)',
:jobkeys => ["JOB_KEY_A", "JOB_KEY_B"]
}
data = client.search(params)
# loop through all results and print the job title
data.each do |d|
puts d["results"]["jobtitle"]
end
each
루프 반환이 오류 메시지 :
i.rb:23:in `[]': no implicit conversion of String into Integer (TypeError)
from i.rb:23:in `block in <main>'
from i.rb:22:in `each'
from i.rb:22:in `<main>'
내가이 오류 메시지가 내가 문자열을 걸었습니다 정수를 발견하려고 말하는 가정 ["results"]
또는 ["jobtitle"]
입니다. 이 라인은 작동하고, 직책 인쇄
:
puts data["results"][0]["jobtitle"]
이 나는 결과 해시의 0 번째 요소에 액세스하고 jobtitle 속성에 액세스 할 수 있습니다 의미합니다.
나는이 인쇄 3 작업 제목처럼 실행하는 루프를 원하는 :
puts data["results"][0]["jobtitle"]
puts data["results"][1]["jobtitle"]
puts data["results"][2]["jobtitle"]
나는 그것이 정수를 기대 않다면 루프에 [i]
카운터를 넣어하는 방법을 모르겠어요.
{"version"=>2,
"query"=>"python",
"location"=>"vancouver",
"paginationPayload"=>"",
"radius"=>25,
"dupefilter"=>true,
"highlight"=>true,
"totalResults"=>483,
"start"=>1,
"end"=>10,
"pageNumber"=>0,
"results"=>
[{"jobtitle"=>"Junior Software Developer",
"company"=>"LaunchCode",
"city"=>"Portland",
"state"=>"OR",
"country"=>"US",
"formattedLocation"=>"Portland, OR",
"source"=>"LaunchCode",
"date"=>"Fri, 03 Feb 2017 04:10:27 GMT",
"snippet"=>
"Familiarity with an at least one imperative (Java, JavaScript, PHP, C#, Objective-C, C/C++, <b>Python</b>, Ruby, etc.). Don’t have a CS degree?...",
"url"=>
"http://www.indeed.com/viewjob?jk=9f75f0ea8825e3a8&qd=X0KuMlb--hp3Z0o2UU7dJOXoIlOcgm8VSZO61KKa0UOtGpLfFk1WY111OhfFWzZjMBRv9LrdGhB8olLNQGabmQRFit3-lRPP9j12GNvnf88&indpubnum=4334069173238194&atk=1b87s51b1a0kqb7s",
"onmousedown"=>"indeed_clk(this,'782');",
"jobkey"=>"9f75f0ea8825e3a8",
"sponsored"=>false,
"expired"=>false,
"indeedApply"=>false,
"formattedLocationFull"=>"Portland, OR",
"formattedRelativeTime"=>"2 days ago",
"stations"=>""},
해시이지만, "결과"에 대한 값이 키 배열입니다 : 여기
는 데이터가 Indeep의 API에서 돌아 오는 모습입니다 해쉬 내부.우수 스에서 아래 응답은 작동합니다
이 또한 일 : 여기
for i in 1...10
puts data["results"][i]["jobtitle"]
end
는 출력 :
Junior Software Developer
Data Scientist
Python Developer
Python Automation Developer - Hillsboro, OR
Computer Vision Engineer
Python Web Engineer
EMS Network Applications Engineer II
Software Engineer
Python Developer (full-stack)
Electrical Engineer, EMS Network Applications
에 오신 것을 환영합니다 뭔가를 할 수 있습니다. "[mcve]"를 읽으십시오. 샘플 데이터는 구문이 올바르지 않으므로 문제를 설명하는 데 필요한 최소한으로 줄여야합니다. 텍스트에서 "수정"또는 "업데이트"태그를 사용하지 마십시오. 변화가 몸 전체에있는 것처럼 몸에 반영하십시오. 우리가 알아야 할 부분이 언제 어디서 변했는지 알 수 있습니다. –