У меня есть текстовый файл, который я беру с sec.gov, со следующими запросами на импорт кода cik = requests.get ('https://www.sec.gov/include/ticker.txt') .text mylist = cik.split () вывод с сайта выглядит ...

0
Likonima 6 Апр 2021 в 00:05

3 ответа

Лучший ответ

Один из способов сопоставить предоставленный вывод со словарем посредством синтаксического анализа заключается в следующем:

Получите текстовый вывод в ответ:

>>> import requests
>>> resp = requests.get("https://www.sec.gov/include/ticker.txt").text

Теперь, если вы проверите первую строку, вы увидите, что это aap1\t320193\n. Это полезная информация, которая помогает понять, что сначала может быть выполнено разделение на \n, затем на \t, а затем добавлено непосредственно в словарь:

>>> combinations = resp.split("\n")
>>> dict_test = {}
>>> for element in combinations:
# Here, element.split("\t")[0] will be aap1 and element.split("\t")[1] will be 320193
    dict_test[element.split("\t")[0]] = element.split("\t")[1]

Наконец, первые 5 результатов показаны ниже, поскольку сам словарь слишком велик:

>>> for idx, key in enumerate(dict_test.keys()):
    if idx == 5:
        break
    print("Key: {} and its Value: {}".format(key, dict_test[key]))

Выход:

Key: aapl and its Value: 320193
Key: msft and its Value: 789019
Key: amzn and its Value: 1018724
Key: goog and its Value: 1652044
Key: fb and its Value: 1326801
0
coldy 5 Апр 2021 в 22:32

Я предполагаю, что ваш список выглядит так:

mylist = ["aapl    320193", "msft    789019", ...] # so on and so forth
mylist = [x.split() for x in mylist] # remove those excessive spaces
text = [x[0] for x in mylist] # grab the text
numbers = [x[1] for x in mylist] # grab the numbers
output_dict = dict(zip(text, numbers)) # magic!

>>> output_dict
{'aapl': '320193', 'msft': '789019', ...}

Если у вас есть один список акций и другой список чисел, вы можете сразу перейти к шагу output_dict.

0
hbrandao 5 Апр 2021 в 21:13

Я предполагаю, что вы спрашиваете, как сопоставить 2 списка со словарем с номером в качестве ключа. Вот как это сделать:

word_lst = ["aapl", "msft", "amzn"]
num_list = [320193, 789019, 1018724] 
dic = {}

for i, item in enumerate(word_lst):
    dic[num_list[i]] = item

0
CobraPi 5 Апр 2021 в 21:13