Я беру json и конвертирую его в csv.Python Разделить отдельные элементы списка на более мелкие строки
Я мог бы быть в своем подходе к этой проблеме, но я совершенно новый.
Я делаю ави звонки.
Один вызов api возвращает 25 результатов.
Если я просто беру данные, которые я хочу, у меня останется список из 25 элементов. Один результат работы - один элемент.
Но мне нужно разбить этот индивидуальный результат работы на его составные части. Jobtitle, дата, место, компании и т.д.
код на самом деле не имеет значения, но здесь это все равно:
import json
import requests
api_url = 'http://api.indeed.com/ads/apisearch?publisher=################&v=2&limit=100000&format=json'
number= 0
SearchTerm = 'Birst'
for number in range(0, 75, 25):
url = api_url + '&q=' + SearchTerm + '&latlong=1' + '&start=' + str(number)
response = requests.get(url)
grabforclean = json.loads(response.content)
clean_json = (grabforclean['results'])
print 'Grabbed'
print len(clean_json)
print clean_json[1]
Вот результат:
Grabbed
25
{u'formattedRelativeTime': u'30+ days ago', u'city': u'San Francisco', u'date': u'Fri, 27 May 2016 03:06:26 GMT', u'latitude': 37.774727, u'url': u'http://www.indeed.com/viewjob?jk=68a1f3ca57c87b65&qd=S0eImTYbjbDl0FpDWMH7yxn390IaFpVEIOijV-ObcSMguXFXi22BmSZ0-mFRI3DxL4I4cyMEC3X3Sq1uL-fv4am1Aj3izkOw87NHJgxznYA&indpubnum=8710117352111766&atk=1amnato8gb8tqe41', u'jobtitle': u'Senior Customer Success Manager', u'company': u'Birst', u'formattedLocationFull': u'San Francisco, CA', u'longitude': -122.41758, u'onmousedown': u"indeed_clk(this, '4355');", u'snippet': u'Develop a trusted advisor relationship with customer sponsors such that all <b>Birst</b> activities are closely aligned with the customer\u2019s business goals and strategy...', u'source': u'Birst', u'state': u'CA', u'sponsored': False, u'country': u'US', u'formattedLocation': u'San Francisco, CA', u'jobkey': u'68a1f3ca57c87b65', u'expired': False, u'indeedApply': False}
Спасибо.
я, наконец, решил это, получается, что с помощью dictwriter у меня не было, чтобы разбить эти словари, просто нужно было использовать unciodecsv для кодирования и открыть CSV перед циклом через вызовы:
import unicode csv as csv
...
with open('testingdictastaa.csv' , 'w') as csvfile:
fieldnames = ['city','company','country','date','expired','formattedLocation','formattedLocationFull','formattedRelativeTime','indeedApply','jobkey','jobtitle','latitude','longitude','onmousedown','snippet','source','sponsored','state','url']
writer = csv.DictWriter(csvfile, fieldnames = fieldnames, lineterminator = '\n')
writer.writeheader()
for number in range(0, 75, 25):
url = api_url + '&q=' + SearchTerm + '&latlong=1' + '&start=' + str(number)
response = requests.get(url)
grabforclean = json.loads(response.content)
clean_json = (grabforclean['results'])
print 'Grabbed'
for job in clean_json:
writer.writerow(job)
Каков ваш вопрос? –
Как разбить элемент списка на более мелкие части? –