Reputation: 15
I have list
keywords = ['car','bike','motorcycle', 'airplane', 'boat', 'boat']
and I have a api that returns data
[('bike','http://bikes.com/bikes'),
('boat':'http://boat.com/boat')]
so I need a tuple/list which can be like
[('car','none'),
('bike','http://bikes.com/bikes'),
('motorcycle','none'),
('airplane','none'),
('boat','http://boat.com/boat'),
('boat','http://boat.com/boat')]
Basically I was able to create with dictionary how ever I wanted to retain duplicates.
keyword_list = keyword.split(",")
response = requests.request("GET", url, headers=headers, params=querystring)
field_json = json.loads(response.text)
data = field_json['response']
field_json = json.loads(response.text)
data = field_json['response']
if len(data)> 0:
list1 = {}
for i in data['docs']:
list1[i['keyword_s']]= i['url_s']
print(list(list1.items()))
keyword_dict = {k: None for k in keyword_list}
keyword_dict.update(list1)
return keyword_dict
Upvotes: 0
Views: 38
Reputation: 5755
api = [('bike','http://bikes.com/bikes'),
('boat','http://boat.com/boat')]
keywords = ['car','bike','motorcycle', 'airplane', 'boat', 'boat']
ans = []
missing = set(keywords)
for k, v in api:
if k in keywords:
ans.append((k, v))
missing.remove(k)
for miss in missing:
ans.append((miss, None))
print(ans)
Upvotes: 0
Reputation: 4333
Your code:
keywords = ['car','bike','motorcycle', 'airplane', 'boat', 'boat']
api = [('bike','http://bikes.com/bikes'), ('boat', 'http://boat.com/boat')]
Solution:
api_dict = dict(api)
out = [api_dict.get(k) for k in keywords]
Upvotes: 2