solution from @sören:
I came up with this solution for my problem:
from Bio.KEGG import REST as kegg
def _get_kegg(kegg_id):
kegg_output = kegg.kegg_get(kegg_id).read()
results = {}
for line in kegg_output.split('n'):
splits = line.split()
if not line.startswith(' '):
if len(splits) > 0:
key = splits[0]
value=" ".join(splits[1:])
results[key] = value
else:
results[key] += ' '.join(splits)
return pd.DataFrame(results, index=[kegg_id])
_get_kegg_v = np.vectorize(_get_kegg)
def get_kegg_info(kegg_ids):
if isinstance(kegg_ids, str):
kegg_ids = [kegg_ids]
return pd.concat(_get_kegg_v(kegg_ids), sort=False)
Read more here: Source link