разбора строк с помощью пакета Parse - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь создать программу с консольного ввода и проанализировать ввод текста.

import parse


while True:

    def parse_text(text: str) -> str:
        result = parse.parse(text)
        return str(result)

    answer = input('Which type of component do you need help with, an AHU or VAV?')
    name = parse_text(answer)
    if {name} == 'VAV':
        print('Ok, what VAV number?')
    if {name} == 'AHU':
        print('Ok, what AHU number?')
    else:
        print('Please specify AHU or VAV')

У меня такое ощущение, что функция parse_text не возвращает строку, может кто-нибудь дать мне совет?

Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> 
========== RESTART: C:/Users/benb/Desktop/text_parse/parse_hvac.py ==========
Which type of component do you need help with, an AHU or VAV?AHU
Traceback (most recent call last):
  File "C:/Users/benb/Desktop/text_parse/parse_hvac.py", line 13, in <module>
    name = parse_text(answer)
  File "C:/Users/benb/Desktop/text_parse/parse_hvac.py", line 9, in parse_text
    result = parse.parse(text)
TypeError: parse() missing 1 required positional argument: 'string'
>>> 

1 Ответ

1 голос
/ 25 сентября 2019

parse нужно два аргумента, посмотрите на https://github.com/r1chardj0n3s/parse

Если вызываемая вами функция ввода предоставлена ​​Python, почему бы вам просто не сделать

name = answer.upper()
if name == 'VAV':
    print('Ok, what VAV number?')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...