我越來越想轉儲sympy表達YAML當此錯誤時: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
感謝您的意見。明天我會試試看 – themantalope
在[so]和ruamel.yaml/PyYAML文檔中有代表示例。如果這還不夠,你就知道在哪裏問,但確保包含一些最小的示例代碼(這使得幫助更容易)。 – Anthon
嗨@安頓,感謝您的建議,我非常感謝。我之所以在這篇文章中沒有包含很多代碼,是因爲我已經將一些我想要轉儲的類加以分類,並且我不想發佈太多以至於願意幫助的人會被壓倒。如果您認爲我應該在帖子中加入其他內容,以幫助您和其他人更好地理解背景,請告訴我。我猜在我試圖簡潔的時候,我可能會削減太多。 – themantalope