【发布时间】:2016-10-12 18:39:44
【问题描述】:
尝试将 sympy 表达式转储到 YAML 时出现此错误:
TypeError: cannot determine truth value of Relational
我要转储的是包含 2 个 sympy.Symbol 对象的集合。我不确定为什么 sympy 试图将其评估为 StrictLessThan 对象。 sympy 试图确定真值,也许是为了评估 mapping.sort() 函数?
这是回溯:
Traceback (most recent call last):
File "E:/Matt/Documents/ProgrammingProjects/infinitree/abg.py", line 267, in <module>
print yaml.dump(mtree)
File "C:\Python27\lib\site-packages\yaml\__init__.py", line 202, in dump
return dump_all([data], stream, Dumper=Dumper, **kwds)
File "C:\Python27\lib\site-packages\yaml\__init__.py", line 190, in dump_all
dumper.represent(data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 28, in represent
node = self.represent_data(data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 61, in represent_data
node = self.yaml_multi_representers[data_type](self, data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 434, in represent_object
u'tag:yaml.org,2002:python/object:'+function_name, state)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 123, in represent_mapping
node_value = self.represent_data(item_value)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 61, in represent_data
node = self.yaml_multi_representers[data_type](self, data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 434, in represent_object
u'tag:yaml.org,2002:python/object:'+function_name, state)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 123, in represent_mapping
node_value = self.represent_data(item_value)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 57, in represent_data
node = self.yaml_representers[data_types[0]](self, data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 223, in represent_dict
return self.represent_mapping(u'tag:yaml.org,2002:map', data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 123, in represent_mapping
node_value = self.represent_data(item_value)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 61, in represent_data
node = self.yaml_multi_representers[data_type](self, data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 434, in represent_object
u'tag:yaml.org,2002:python/object:'+function_name, state)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 123, in represent_mapping
node_value = self.represent_data(item_value)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 61, in represent_data
node = self.yaml_multi_representers[data_type](self, data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 434, in represent_object
u'tag:yaml.org,2002:python/object:'+function_name, state)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 123, in represent_mapping
node_value = self.represent_data(item_value)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 57, in represent_data
node = self.yaml_representers[data_types[0]](self, data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 223, in represent_dict
return self.represent_mapping(u'tag:yaml.org,2002:map', data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 123, in represent_mapping
node_value = self.represent_data(item_value)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 57, in represent_data
node = self.yaml_representers[data_types[0]](self, data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 223, in represent_dict
return self.represent_mapping(u'tag:yaml.org,2002:map', data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 123, in represent_mapping
node_value = self.represent_data(item_value)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 61, in represent_data
node = self.yaml_multi_representers[data_type](self, data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 434, in represent_object
u'tag:yaml.org,2002:python/object:'+function_name, state)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 123, in represent_mapping
node_value = self.represent_data(item_value)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 57, in represent_data
node = self.yaml_representers[data_types[0]](self, data)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 229, in represent_set
return self.represent_mapping(u'tag:yaml.org,2002:set', value)
File "C:\Python27\lib\site-packages\yaml\representer.py", line 120, in represent_mapping
mapping.sort()
File "C:\Python27\lib\site-packages\sympy\core\relational.py", line 195, in __nonzero__
raise TypeError("cannot determine truth value of Relational")
TypeError: cannot determine truth value of Relational
【问题讨论】: