我试图使用事件API来获取有关两个日期之间只有音乐事件(音乐会)的信息。例如,我想获得每场音乐会以下信息从20171012到20171013:从请求到事件API获取一个空阵列
- city
- performer
- country
- latitude
- longitude
- genre
- title
- image
- StarTime
即时通讯使用Python的例子可在网上,并改变它来获得上述数据。但现在它不能正常工作我只是能够得到这个信息:
{'latitude': '40.4',
'longitude': '-3.68333',
'start_time': '2017-10-12 20:00:00',
'city_name': 'Madrid', 'title': 'Kim Waters & Maysa Smooth en Hot Jazz Festival'}
但是表演者,流派国家和图像url它不工作。你知道如何获得这些信息吗?当我改变下面的python例子来获取这些信息时,它总是返回一个空数组。
蟒蛇例如工作:(但是,没有得到表演,流派,国家和图像的URL,如果我theese元素添加到event_features我得到一个空数组)
import requests
import datetime
def get_event(user_key, event_location , start_date, end_date, event_features, fname):
data_lst = [] # output
start_year = int(start_date[0:4])
start_month = int(start_date[4:6])
start_day = int(start_date[6:])
end_year = int(end_date[0:4])
end_month = int(end_date[4:6])
end_day = int(end_date[6:])
start_date = datetime.date(start_year, start_month, start_day)
end_date = datetime.date(end_year, end_month, end_day)
step = datetime.timedelta(days=1)
while start_date <= end_date:
date = str(start_date.year)
if start_date.month < 10:
date += '0' + str(start_date.month)
else:
date += str(start_date.month)
if start_date.day < 10:
date += '0' + str(start_date.day)
else:
date += str(start_date.day)
date += "00"
date += "-" + date
url = "http://api.eventful.com/json/events/search?"
url += "&app_key=" + user_key
url += "&location=" + event_location
url += "&date=" + date
url += "&page_size=250"
url += "&sort_order=popularity"
url += "&sort_direction=descending"
url += "&q=music"
url+= "&c=music"
data = requests.get(url).json()
try:
for i in range(len(data["events"]["event"])):
data_dict = {}
for feature in event_features:
data_dict[feature] = data["events"]["event"][i][feature]
data_lst.append(data_dict)
except:
pass
print(data_lst)
start_date += step
def main():
user_key = ""
event_location = "Madrid"
start_date = "20171012"
end_date = "20171013"
event_location = event_location.replace("-", " ")
start_date = start_date
end_date = end_date
event_features = ["latitude", "longitude", "start_time"]
event_features += ["city_name", "title"]
event_fname = "events.csv"
get_event(user_key, event_location, start_date, end_date, event_features, event_fname)
if __name__ == '__main__':
main()
您的'event_features'列表只包含这五个元素。 –
谢谢你的回答。我只是把这5个元素放在一起,因为就像它的工作一样。例如,如果我添加执行者,它将返回一个空数组。 – JonD