x.split无效

时间:2018-02-18 02:51:51

标签: python arrays

由于某种原因x.split(':', 1)[-1]没有做任何事情。有人可以解释一下,也许可以帮助我吗?

我之前尝试删除数据:(包括":")但它始终保留该数据

代码

data = { 'state': 1, 'endTime': 1518852709307, 'fileSize': 000000 }
data = data.strip('{}')
data = data.split(',')
for x in data:
    x.split(':', 1)[-1]
    print(x)`

输出

"state":1
"endTime":1518852709307
"fileSize":16777216

4 个答案:

答案 0 :(得分:3)

这是一个dictonary,而不是字符串列表。 我想这就是你要找的东西:

data = str({"state":1,"endTime":1518852709307,"fileSize":000000}) #add a str() here
data = data.strip('{}')
data = data.split(',')
for x in data:
   x=x.split(':')[-1] # set x to x.split(...)
   print(x)

下面的脚本打印出来:

 1
 1518852709307
 0

这是一个单行版本:

print (list(map(lambda x:x[1],data.items())))

打印出来:

[1, 1518852709307, 0]

这是一个整数列表。

答案 1 :(得分:1)

好像你只想要字典中的值

{{1}}

答案 2 :(得分:1)

我不确定,但我认为这是因为计算机将“state”和1视为单独的对象。因此,它只是剥离其冒号的字符串“状态”,其中没有。

您可以通过输入:

将整个字典变为字符串
data = str({ Your Dictionary Here })

然后,打印剩下的“for x in data”语句,如下所示:

for x in data:
   b = x.split(':', 1)[-1]  # creating a new string 
   print(b)

答案 3 :(得分:1)

代码中的

data是一本字典。因此,您只需访问data[state]的值,其值为1

如果您将此数据作为字符串获取,例如:     data =“{'state':1,'endTime':1518852709307,'fileSize':000000}”

您可以使用json.loads将其转换为字典并访问上述数据。

import json
data = '{"state":1, "endTime":1518852709307, "fileSize":0}'
data = json.loads(data)
for _,v in data.items():
   print(v)

如果你想自己解析字符串,这应该有效:

data = '{"state":1,"endTime":1518852709307,"fileSize":000000}'
data = data.strip('{}')
data = data.split(',')
for x in data:
    x=x.split(':')[-1]
    print(x)