【问题标题】:TypeError: size; expecting a recognized type filling string dict类型错误:大小;期待一个可识别的类型填充字符串 dict
【发布时间】:2020-05-25 12:40:36
【问题描述】:

我一直在为 Abaqus 编写 Python 脚本,它与模型参数的动态变化有关。该脚本打开一个 .txt 文件 并读取不同的值。这些值使用制表符分隔,我使用 Abaqus-Python 的 split() 函数 将它们分配给列表后正确读取它们。

最后一个索引是 [5],它包含网格大小,也是一个浮点值。该结构在 ABAQUS 中正确绘制,它引发的唯一错误是在分配网格尺寸时:

File "C:/Users/ANANT/PyCharmProjects/test_final/test_copy.py", line 104, in <module>
    beamPart.seedPart(deviationFactor=0.1, minSizeFactor=0.1, size=mesh)
TypeError: size; found 'module', expecting a recognized type filling string dict

所以我尝试使用 repr() 将其设为字符串,但我会认为输入应该是浮点/整数值,并且效果完全相同。现在我被卡住了,我不能再工作了。我什至尝试将浮点值截断为网格大小的 3 位小数点,但它仍然会抛出相同的错误。

非常感谢任何帮助,非常感谢:)

input file with truncated mesh size

【问题讨论】:

  • 这个问题真的很难回答。首先,这里的大多数人都不知道 Abaqus。其次,问题不是独立的(请不要提供任何链接,尽量在您的问题中提供尽可能多的信息)。第三,您不提供任何代码,可以收集见解并找出错误的根源。请参考How to ask a good questionHow to create a MRE 以获得更多指导。
  • 这个和ABAQUS没有关系,错误是python和上面提到的错误类型有关。此外,我附上的图像包含所需的任何内容。感谢您的关心。
  • 您可以在此处轻松复制错误文本,因此无论何时链接断开,所需的所有信息仍然可用。输入相同。只是说,这将提高有人回答问题的机会。
  • beamPart.seedPart(deviationFactor=0.1, minSizeFactor=0.1, size=mesh) TypeError: size;找到“模块”,期待一个可识别的类型填充字符串 dict 所以错误出现同时将浮点值分配给 size = mesh

标签: python dictionary size typeerror


【解决方案1】:

错误消息显示seedPart 需要一个满足“可识别类型填充字符串字典”要求的size 参数。我不知道这是什么意思,但例子here是:

p.seedPart(size=2.0)

所以你可能需要一个浮点数。但是mesh 是一个模块。你可能有类似的东西:

import mesh

或者:

import ... as mesh

在您的代码中。

尝试在引发错误的行之前打印mesh

【讨论】:

  • 非常感谢您的反馈,我刚刚检查过。它希望我在那里输入一个浮点变量,但它也是一个从 abaqus 常量导入的模块。所以我切换了变量名并且它起作用了。非常感谢您的帮助。
【解决方案2】:

所以,传递的“size=mesh”参数显然不是正确的类型。网格是“模块”类型。这是故意的吗?

【讨论】:

  • 非常感谢您的帮助。我检查了一下,显然它既是一个模块又是一个变量,更改名称有帮助。调试一个580行的代码,完全忽略了我有这个双名问题。
猜你喜欢
  • 1970-01-01
  • 2020-08-06
  • 2019-02-27
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 2015-11-24
相关资源
最近更新 更多