首页 > 解决方案 > 从 Python F 字符串中提取参数

问题描述

我有一个 python f-string 如下:

def send_string():
    ticket_id=123
    message = f'{ticket_id} Jira created successfully'
    return message

def extract_ticket_from_message(message):
    #pseudo code
    # Is it possible to extract the ticket id without parsing the 
    # whole string and using regex

有没有一种方便的方法可以从 f 字符串中提取ticket_id值,而不必在 Python 3.6 中使用正则表达式解析整个字符串?

标签: pythonstringpython-3.xf-string

解决方案


如果

 ticket_id = 1234
 message = f'{ticket_id} Jira created successfully'

然后——不使用正则表达式——</p>

def extract_ticket_from_message(message):
    return message.split()[0]

换句话说,第一个词。如果ticket_id也可以是任何字符串(因此可能包含空格),您仍然可以使用它,但要剪掉最后的 3 个单词。(毕竟,你知道接下来会发生什么。)如果是一个导致ticket_id字符串表示的更复杂的对象,那么除了 Python 原语之外,没有实用的方法可以将其解析回原始类/对象/其他任何东西。

值得注意的是:您无法毫无歧义地获得原始类型。如果原件是一个字符串,但它的值是"1234",那么您无法确定是否传递了一个字符串或数字。


推荐阅读