首页 > 解决方案 > 每行前面的循环文本

问题描述

我想使用 Python 3.x 从 Yahoo Finance 收集股票数据。

目前我使用以下数据字符串:

import requests
url = "https://query1.finance.yahoo.com/v7/finance/download/AAC?period1=1514761200&period2=1517439600&interval=1d&events=history&crumb=Nr.jC4aJCc7"
s = "AAC,"
response = requests.post(url)
print ((s),(response.text))

这段代码给了我以下回报:

AAC, Date,Open,High,Low,Close,Adj Close,Volume
2018-01-16,9.370000,9.410000,9.000000,9.060000,9.060000,69400
2018-01-17,9.120000,9.170000,9.000000,9.030000,9.030000,104500
2018-01-18,9.050000,9.135000,8.980000,8.990000,8.990000,166600
2018-01-19,9.000000,9.270000,9.000000,9.200000,9.200000,110600
2018-01-22,9.200000,9.200000,8.940000,9.080000,9.080000,139200
2018-01-23,9.050000,9.110000,9.000000,9.020000,9.020000,54700
2018-01-24,9.070000,9.070000,8.910000,8.950000,8.950000,117500
2018-01-25,9.000000,9.060000,8.900000,9.050000,9.050000,204300
2018-01-26,9.110000,9.240000,9.090000,9.170000,9.170000,62000
2018-01-29,9.170000,9.780000,9.170000,9.500000,9.500000,173300
2018-01-30,9.400000,9.480000,9.000000,9.080000,9.080000,82800
2018-01-31,9.080000,9.250000,8.820000,8.950000,8.950000,122000

我想收到以下回报:

Ticker,Date,Open,High,Low,Close,Adj Close,Volume,
AAC,2018-01-16,9.370000,9.410000,9.000000,9.060000,9.060000,69400
AAC,2018-01-17,9.120000,9.170000,9.000000,9.030000,9.030000,104500
AAC,2018-01-18,9.050000,9.135000,8.980000,8.990000,8.990000,166600
AAC,2018-01-19,9.000000,9.270000,9.000000,9.200000,9.200000,110600
AAC,2018-01-22,9.200000,9.200000,8.940000,9.080000,9.080000,139200
AAC,2018-01-23,9.050000,9.110000,9.000000,9.020000,9.020000,54700
AAC,2018-01-24,9.070000,9.070000,8.910000,8.950000,8.950000,117500
AAC,2018-01-25,9.000000,9.060000,8.900000,9.050000,9.050000,204300
AAC,2018-01-26,9.110000,9.240000,9.090000,9.170000,9.170000,62000
AAC,2018-01-29,9.170000,9.780000,9.170000,9.500000,9.500000,173300
AAC,2018-01-30,9.400000,9.480000,9.000000,9.080000,9.080000,82800
AAC,2018-01-31,9.080000,9.250000,8.820000,8.950000,8.950000,122000

有没有人可以帮助我解决这个问题?

标签: pythonpython-3.xlogichelper

解决方案


您可以根据需要使用 python 方法来格式化传入的文本。我正在使用 split() 在换行符处拆分文本,这是生成器理解中的一个三元组,以预先添加任何一个'Ticker,''AAC,'部分并将join()其粘合在一起(指向 doku 的链接见下文):

import requests
url = "https://query1.finance.yahoo.com/v7/finance/download/AAC?period1=1514761200&period2=1517439600&interval=1d&events=history&crumb=Nr.jC4aJCc7"
s = "AAC,"
response = requests.post(url)

text_lines = '\n'.join(('Ticker,' if x.startswith("Date") else s) + x.strip() 
                       for x in response.text.split("\n") if x)
print(text_lines)

输出:

Ticker,Date,Open,High,Low,Close,Adj Close,Volume
AAC,2018-01-16,9.370000,9.410000,9.000000,9.060000,9.060000,69400
AAC,2018-01-17,9.120000,9.170000,9.000000,9.030000,9.030000,104500
AAC,2018-01-18,9.050000,9.135000,8.980000,8.990000,8.990000,166600
AAC,2018-01-19,9.000000,9.270000,9.000000,9.200000,9.200000,110600
AAC,2018-01-22,9.200000,9.200000,8.940000,9.080000,9.080000,139200
AAC,2018-01-23,9.050000,9.110000,9.000000,9.020000,9.020000,54700
AAC,2018-01-24,9.070000,9.070000,8.910000,8.950000,8.950000,117500
AAC,2018-01-25,9.000000,9.060000,8.900000,9.050000,9.050000,204300
AAC,2018-01-26,9.110000,9.240000,9.090000,9.170000,9.170000,62000
AAC,2018-01-29,9.170000,9.780000,9.170000,9.500000,9.500000,173300
AAC,2018-01-30,9.400000,9.480000,9.000000,9.080000,9.080000,82800
AAC,2018-01-31,9.080000,9.250000,8.820000,8.950000,8.950000,122000 

独库:


推荐阅读