eval 函数的应用 (去除包装在列表外面的引号)

时间:2024-01-21 14:56:21

a="[u'ANDROID-5a9ac5c22ad94e26b2fa24e296787a35', u'0', 0, 0, 0, 1]"

此时的a是一个字符串,目的是要去掉a上面的引号,还原为列表,生成 [u'ANDROID-5a9ac5c22ad94e26b2fa24e296787a35', u'0', 0, 0, 0, 1]。

下面方法二的函数很重要。

方法一:

def trans(a):
     d=a[3:-1].split(',')
     e=[x.replace("'","").strip() for x in d]
     f=[e[x][1] if x==1 else e[x] for x in range(len(e))]
     return f

b=trans(a)

方法二:用eval函数:

b=eval(a)

在spark中转换:

data3=data.map(lambda x:eval(x))