Преобразование файла типа байта в рабочий формат в python - PullRequest
1 голос
/ 22 апреля 2020

Я должен прочитать таблицу в приведенной ниже ссылке (html page) в dict () и затем работать над ней. Однако с приведенным ниже кодом, который я дал, таблица все еще выглядит неуклюже, и я не понимаю, с чего начать работу, чтобы сделать ее словарем последовательности кодонов (например, AGU) для соответствующей аминокислоты. Есть ли способ заставить его выглядеть лучше? Может быть, что-то вроде DataFrame или какие-либо другие предложения? Пожалуйста помоги. Спасибо.

link = "http://www.kazusa.or.jp/codon/cgi-bin/showcodon.cgi?species=9606&aa=1&style=N"
f = urllib.request.urlopen(link)
myfile = f.read()
s = myfile.decode()
s.strip(" ")

1 Ответ

0 голосов
/ 22 апреля 2020

Если бы вы посмотрели на страницу http://www.kazusa.or.jp/codon/cgi-bin/showcodon.cgi?species=9606&aa=1&style=N, вы бы заметили, что она содержит не только нужную вам последовательность кодонов, но много из HTML вокруг нее. Чтобы извлечь только кодоны, лучше всего использовать BeautifulSoup:

from bs4 import BeautifulSoup
link = "http://www.kazusa.or.jp/codon/cgi-bin/showcodon.cgi?species=9606&aa=1&style=N"
f = urllib.request.urlopen(link)
myfile = f.read()
s = myfile.decode()
codons = BeautifulSoup(s).find('pre').text

Теперь вам, вероятно, следует обработать эту строку дальше, чтобы получить желаемую форму - dict, list, dataframe, что угодно. Предполагая, что вы просто хотите диктовать, так как вы упомянули словарь:

import re
codons_dict = { t[0]: t[1] for t in sorted(re.findall(r'(\w{3})\s+\w\s+(\S+)\s+\S+\s+[(]\d+[)]', codons)) }
...