首页 > 解决方案 > 使用python中的格式字符串从文本字符串中提取值

问题描述

我有一个格式字符串和一个输入字符串,例如:

format_string = "name=%s, age=%d"
input_string = "name=username, age=100"

关于如何以简洁的方式提取%s和的等效值的任何建议?%d

标签: pythonstringformat

解决方案


除非您想使用正则表达式或拆分技术,否则您可以尝试TTP来提取所需的值:

from ttp import ttp
import pprint

data = """
name=username1, age=1001
name=username2, age=1002
name=username3, age=1003
"""

template = "name={{ name }}, age={{ age }}"

parser = ttp(data, template)
parser.parse()
res = parser.result(structure="flat_list")
pprint.pprint(res)

# prints:
# [{'age': '1001', 'name': 'username1'},
#  {'age': '1002', 'name': 'username2'},
#  {'age': '1003', 'name': 'username3'}]

推荐阅读