我有一个变量T,格式为YYYY-MM-DD_HH:00:00,其中YYYY是4位数字的年份,MM是月份,HH是小时。 我想提取单个字段。 首先,当我这样做时:
print("T = ",T)
我明白了
T = [b'2' b'0' b'1' b'9' b'-' b'0' b'6' b'-' b'0' b'2' b'_' b'0' b'0' b':' b'0' b'0' b':' b'0' b'0']
在python2.7中,我这样做:
myList = list(T[0:4])
yr = "".join(myList)
myList = list(T[5:7])
mn = "".join(myList)
myList = list(T[8:10])
dy = "".join(myList)
myList = list(T[11:13])
hr = "".join(myList)
这些行给我数字。
但是在python 3.7中,我陷入了第一个领域
myList = list(T[0:4])
print("myList = ",myList) -> myList = [b'2', b'0', b'1', b'9']
yr = "".join(myList)
给出错误
TypeError: sequence item 0: expected str instance, numpy.bytes_ found
但是
yr = b"".join(myList)
给予
print("yr = ",yr) -> yr = b'2019'
从这里我无法提取年份数字。
print("yr = ",yr[0:3]) -> yr = b'201'
print("yr = ",yr[1:4]) -> yr = b'019'
我也尝试过
newyr = yr.replace("b", "")
和 p = yr.index(“ b”)#查找字母“ b”的位置 TypeError:参数应为整数或类似字节的对象,而不是“ str”
所有这些都不起作用。
如何摆脱b并保留年份数字。由于从2020年开始将不再维护python 2.7,因此我需要在python 3.x中使用我的代码
我们将为您提供帮助。
答案 0 :(得分:0)
您需要解码文本。
def get_year(text):
text = text.decode("utf-8")
year = text.split('-')[0]
return text, year
get_year(T[0])