【问题标题】:AttributeError: 'tuple' object has no attribute 'asjson'AttributeError:“元组”对象没有属性“asjson”
【发布时间】:2020-08-29 13:21:19
【问题描述】:

当我想测试我的 EBNF 语法时,我遇到了错误:

AttributeError: 'tuple' 对象没有属性 'asjson'

代码:

if not filename or filename == '-':
    text = sys.stdin.read()
else:
    with open(filename) as f:
        text = f.read()

grammarname = 'grammars/CTEST.ebnf'
grammarData = open(grammarname).read()
parser = tatsu.compile(grammarData, asmodel=True)

model = parser.parse(text)
print()
print('# MODEL TYPE IS:', type(model).__name__)
print(json.dumps(model.asjson(), indent=4))
print()

如何验证我的语法文件?

【问题讨论】:

    标签: python-3.x grammar generated tatsu


    【解决方案1】:

    这完全取决于parser.parse 返回的内容。它可能会返回多个值。

    例如:return a_variable, another_variable 是 python 中的有效语法。如果它返回多个值,它们以元组的形式出现。您应该像model[0] 一样阅读它们,或者您可以使用a, b = parser.parse(text)

    【讨论】:

      猜你喜欢
      • 2013-06-21
      • 2021-07-30
      • 2013-07-29
      • 2015-04-22
      • 2019-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多