Saya memiliki file txt yang saya ambil dari sec.gov dengan kode berikut permintaan impor cik = request.get('https://www.sec.gov/include/ticker.txt').text mylist = cik.split () output dari situs terlihat ...

0
Likonima 6 April 2021, 00:05

3 jawaban

Jawaban Terbaik

Salah satu cara untuk memetakan output yang disediakan ke kamus melalui parsing adalah sebagai berikut:

Dapatkan output teks menjadi respons:

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

Sekarang, jika Anda memeriksa baris pertama, Anda akan melihat bahwa itu adalah aap1\t320193\n. Ini adalah informasi berguna yang membantu dalam memahami bahwa pemisahan dengan \n terlebih dahulu kemudian dengan \t dapat dilakukan dan kemudian ditambahkan langsung ke kamus:

>>> 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]

Akhirnya, 5 output pertama ditampilkan di bawah karena kamus itu sendiri terlalu besar:

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

Keluaran:

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 April 2021, 22:32

Saya berasumsi bahwa Anda bertanya bagaimana memetakan 2 daftar ke kamus, dengan nomor sebagai kuncinya. Ini adalah cara melakukannya:

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 April 2021, 21:13

Saya kira daftar Anda terlihat seperti ini:

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', ...}

Jika Anda memiliki satu daftar saham dan nomor lainnya, Anda dapat langsung melompat ke langkah output_dict.

0
hbrandao 5 April 2021, 21:13