TypeError:'FieldValue对象没有属性'_getitem_'

时间:2017-03-16 09:48:24

标签: python-2.7 abaqus

这是使用在Abaqus中建模的Python脚本找出最大位移的代码:

from odbAccess import *
import os
os.chdir(r"dir")
odb = openOdb('Job.odb')
step = odb.steps['Blast Load']
frame = step.frames[-1]
max_U3 = 0
disp = frame.fieldOutputs['U']
nodes = odb.rootAssembly.nodeSets['NODE']
NodalDisp = disp.getSubset(region=nodes)
for DispVal in NodalDisp.values:
    if DispVal[2]>max_U3:
        max_U3 = DispVal[2]

output = open('Output.txt', 'w')
output.write('%g \n' % (max_U3))
output.close()

第12行显示的错误是: TypeError:'FieldValue对象没有属性'_ getitem _'

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

看起来DispVal不是列表也不是字符串,它是FieldValue。因此,您无法访问DispVal[2]

检查此对象提供的方法,您可能有类似DispVal.value的内容,它将返回您期望的类型。

答案 1 :(得分:1)

我想您要拨打DispVal.data[2]而不是DispVal[2]。除了输出值之外,FieldValue对象中还有很多东西。你想要实际的data