【问题标题】:x.split has no effectx.split 没有效果
【发布时间】:2018-07-28 14:46:43
【问题描述】:

出于某种原因,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

【问题讨论】:

  • 你读过the documentation吗?
  • split 不会变异(更改)x。它返回结果,您应该在变量 x = x.split(':', 1)[-1] 中捕获该结果
  • 谢谢@PatrickHaugh 这是我犯的一个愚蠢的错误

标签: python arrays


【解决方案1】:

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

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]

这是一个整数列表。

【讨论】:

    【解决方案2】:

    好像你只想要字典中的值

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

    【讨论】:

      【解决方案3】:

      我不确定,但我认为这是因为计算机将“状态”和 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)
      

      【讨论】:

        【解决方案4】:

        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)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-10-30
          • 2018-05-21
          • 2018-05-15
          • 1970-01-01
          • 2011-10-01
          • 2015-05-31
          • 2020-10-19
          • 2014-04-19
          相关资源
          最近更新 更多