字节到字符串还是字符串到字节?

2024-05-08 22:04:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我读过这里的一些例子,但我是一个新手,我不明白其中一些,有些似乎不起作用(可能是因为我是这样一个新手,但是。。。在

import urllib.request
import re
Symbols = ['aapl', 'spy' , 'goog' , 'nflx']
i = 0
while i < len(Symbols):
    Yahoo='http://finance.yahoo.com/q?s=' + Symbols[i]
    htmlfile = urllib.request.urlopen(Yahoo)
    htmltext = htmlfile.read()
    string = Symbols[i]
    symbol = string.encode('utf-8')
    pattern= re.compile(b'<span id="yfs_l84_'+ symbol +'">(.+?)</span>')
    price= re.findall(pattern, htmltext)
    print('The price of' + str(Symbols[i]) + ' is ' + str(price))
    i+=1

这不起作用,因为在re.compile语句中,我试图连接str和bytes。在

我需要将字符串转换为字节,以便以后可以迭代符号列表,并从YahooFinance获取最新股价。在

我觉得我的语法有问题,示例和python文档中有一个关于“encoding”的参数,我认为是“utf-8”字符串,但我不太清楚。在

有人能帮我吗?在

编辑:我在这里使用字节,因为这是它唯一的工作方式,如果我不这样做,我会得到一个错误将其更改为字节(我使用的是3.3)。在

错误是:

^{pr2}$

Tags: importrestring字节requesturllibsymbolprice
3条回答
import urllib.request
import re
Symbols = ['aapl', 'spy' , 'goog' , 'nflx']
i = 0
while i < len(Symbols):
Yahoo='http://finance.yahoo.com/q?s=' + Symbols[i]
htmlfile = urllib.request.urlopen(Yahoo)
htmltext = htmlfile.read()
string = Symbols[i]
symbol = string.encode('utf-8')
pattern= re.compile(b'<span id="yfs_l84_'+ symbol +b'">(.+?)</span>')
price= re.findall(pattern, htmltext)
print('The price of' + str(Symbols[i]) + ' is ' + str(price))
i+=1


Hai try this it works  

字符串=字节(符号[i],'Utf-8')

您应该使用字符串,直到您真正想要发出网络请求为止,而不是在代码中混合使用字符串和字节。一般来说,字符串是字符的抽象表示,而字节则是将字符串编码成可通过网络发送的字节序列的特定编码(例如Utf-8)。在

也许你想为这行使用一个原始字符串:

pattern= re.compile(b'<span id="yfs_l84_'+ symbol +'">(.+?)</span>')

而是使用

^{2}$

相关问题 更多 >