gpt4 book ai didi

python - 使用 Python Parse 获取由数字、字母、空格和符号组成的字符串

转载 作者:行者123 更新时间:2023-11-30 22:38:32 24 4
gpt4 key购买 nike

我正在尝试使用 Python 中的 Parse 库来解析日志。 ( https://pypi.python.org/pypi/parse ) 出于我的目的,我需要在格式字符串中使用类型说明符,但是,我正在解析的某些数据可能是其中几种类型的组合。

例如:

"4.56|test-1 Cool|dog"

我可以使用格式说明符 g(一般数字)和末尾的 w(单词)来解析前面的数字“dog”。然而,中间的短语“test-1 Cool”是数字、字母、空格和破折号。单独使用任何说明符似乎都不起作用(已尝试过 W、w、s 和 S)。我想将该短语提取为字符串。

如果没有问题短语,我就会这样做:

test = "|4.56|dog|"
result = parse('|{number:g}|{word:w}|', test)

编辑:我使用如下所示的自定义类型转换取得了一些成功:

def SString(string):
return string

test = "|4.56|test-1 Cool|dog|"
result = parse('|{number:g}|{other:SString}|{word:w}|', test, dict(SString=SString))

最佳答案

您可以使用如下代码来做到这一点:

from parse import *

test = "4.56|test-1 Cool|dog"
result = parse('{number:g}|{other}|{word:w}', test)
print result
#<Result () {'other': 'test-1 Cool', 'word': 'dog', 'number': 4.56}>

此外,对于类型检查,您可以使用 re 模块(例如):

from parse import *
import re

def SString(string):
if re.match('\w+-\d+ \w+',string):
return string
else:
return None

test = "|4.56|test-1 Cool|dog|"
result = parse('|{number:g}|{other:SString}|{word:w}|', test, dict(SString=SString))
print(result)
#<Result () {'other': 'test-1 Cool', 'word': 'dog', 'number': 4.56}>

test = "|4.56|t3est Cool|dog|"
result = parse('|{number:g}|{other:SString}|{word:w}|', test, dict(SString=SString))
print(result)
#<Result () {'other': None, 'word': 'dog', 'number': 4.56}>

关于python - 使用 Python Parse 获取由数字、字母、空格和符号组成的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43499454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com