师姐的小要求,安排一下:
import requests
from multiprocessing import Pool
import json
import pandas as pd
def get_synonyms(ID):
url = 'https://www.ebi.ac.uk/chembl/api/data/target/{}.json'.format(ID)
s = requests.session()
page = s.get(url).text
text = json.loads(page)
a = text['target_components'][0]['target_component_synonyms']
synonyms = [i['component_synonym'] for i in a]
dic = {ID:synonyms}
return dic
def get_ids(path):
df = pd.read_csv(path)
ids = df['CHEMBL_ID']
return ids
if __name__ == '__main__':
path ='input by yourself'
ids = get_ids(path)
pool = Pool(processes = 28)
for ID in ids:
try:
pool.apply_async(func = get_synonyms,args = (ID,))
except:
pass
pool.close()
pool.join()