【问题标题】:Need Help Parsing a string in Python需要帮助在 Python 中解析字符串
【发布时间】:2016-10-27 05:51:58
【问题描述】:

我正在做一个python项目,需要解析以下字符串

{u'max(if(exists(comptPrice),add(0.010,min(0.020,mul(0.200,div(comptPrice,100.0)))),0),0)': 0.026}

现在有很多这样的行,我想遍历它们中的每一行,并且只存储数组中“:”之后的数字部分。在本例中为 0.026。如何才能做到这一点 。我对python真的很陌生,如果这是一个愚蠢的问题,请原谅。

【问题讨论】:

  • 您似乎希望我们为您编写一些代码。虽然许多用户愿意为陷入困境的编码人员编写代码,但他们通常只有在发布者已经尝试自己解决问题时才会提供帮助。展示这项工作的一个好方法是包含您迄今为止编写的代码、示例输入(如果有的话)、预期输出和您实际获得的输出(输出、回溯等)。您提供的详细信息越多,您可能收到的答案就越多。检查FAQHow to Ask
  • 我尝试了 split 方法,但它将字符串分成两部分。然后我处理它并获得所需的结果。我只是想知道是否有一种方法可以让我只获得数组中拆分字符串的右侧部分,从而消除两次处理
  • 如果您已经解决了该问题并正在寻求改进,请尝试 Code Review。
  • string.split(':')[-1]

标签: python regex string


【解决方案1】:

假设数字总是在每个字符串的最后一个: 之后,并且数字总是跟在} 之后

def my_parser(s):
    parsed_s = s.split(': ')[-1][:-1]
    return s

如果您希望结果为浮点数:

def my_parser(s):
    parsed_s = float(s.split(':')[-1][:-1])

然后使用列表推导:

my_list_of_strings = [] #Assume already populated
my_floats = [my_parser(x) for x in my_list_of_strings]

【讨论】:

    猜你喜欢
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    相关资源
    最近更新 更多