【发布时间】:2016-09-09 19:18:24
【问题描述】:
我使用 split() 函数将字符串转换为列表 time = time.split(),这就是我的输出的样子:
[u'1472120400.107']
[u'1472120399.999']
[u'1472120399.334']
[u'1472120397.633']
[u'1472120397.261']
[u'1472120394.328']
[u'1472120393.762']
[u'1472120393.737']
然后我尝试使用print time[1] 访问列表的内容,这会导致索引超出范围错误(因为一个列表中只存储了一个值)。我检查了其他人发布的问题并使用了print len(time)。这是它的输出:
1
[u'1472120400.107']
1
[u'1472120399.999']
1
[u'1472120399.334']
1
[u'1472120397.633']
1
[u'1472120397.261']
1
[u'1472120394.328']
1
[u'1472120393.762']
1
[u'1472120393.737']
我在一个 for 循环中完成这整个事情,因为我动态地获取日志并且必须只提取时间。 这是我的代码的一部分:
line_collect = lines.collect() #spark function
for line in line_collect :
a = re.search(rx1,line)
time = a.group()
time = time.split()
#print time[1] #index out of range error which is why I wrote another for below
for k in time :
time1 = time[k]#trying to put those individual list values into one variable but get type error
print len(time1)
我收到以下错误:
时间1 = 时间[k]
TypeError: 列表索引必须是整数,而不是 unicode
谁能告诉我如何将这些单个列表值中的每一个读取到一个列表中,以便我可以使用单个索引[值]访问它们中的每一个。我是 python 新手。
我需要的输出:
时间=['1472120400.107','1472120399.999','1472120399.334','1472120397.633','1472120397.261','1472120394.328','1472120393.7693.7']4'7123.769.3',7
这样我就可以使用 time[1] 给出 1472120399.999 作为结果。
【问题讨论】:
-
你需要的输出是什么?
-
我已将输出添加到问题中。
标签: python-2.7 apache-spark pyspark