为什么会出现此错误?
File Parser.py", line 214, in writeData
comments = subItem['Comments']
TypeError: string indices must be integers, not str
简短的堆栈跟踪:
213: for subItem in Pt['C']:
214: comments = subItem['Comments']
代码:
Pt[] is defined as is a list.
Pt = self.createPatient()
def createPatient(self):
Pt = {
'S' : {},
'C' : []
}
return Pt
And 'C' is:
这里是'C'(Formats)定义的更大样本。 格式是列表的字典。这有帮助吗?
Formats = {
...
['For Future Use', 11, ''],
],
'C' : [
['use', 1, ''],
['Call', 15, ''],
['Leg', 1, '1'],
['Rank', 1, 'A'],
['DateTime Entered', 14, ''],
['User ID', 11, ''],
['Comments', 255, ''],
['Narrative ID', 11, ''],
['For Future Use', 11, ''],
],
'R' : [
['Use', 1, ''],
['Call #', 15, ''],
['Leg', 1, '1'],
....
}
答案 0 :(得分:2)
C的子元素仍然是列表,需要通过索引访问。 要做你想做的事,最好的方法是用字典替换'C'中的列表。
所以请改用以下内容
var obj = {
a: 1,
b: 2,
c: 3
};
var array = [1, 4, 2, 5, 6];
var ItemsNotInObject = array.slice(); //clone the array
for (var prop in obj) {
if (array.indexOf(obj[prop]) != -1) {
for (var i = 0; i < ItemsNotInObject.length; i++) {
if (ItemsNotInObject[i] == obj[prop]) {
ItemsNotInObject.splice(i, 1); //now simply remove it because it exists
}
}
}
}
console.log(ItemsNotInObject);
顶部的两行代码将起作用。
答案 1 :(得分:0)
看起来您已在代码中的某个位置将recordName
定义为字符串而不是字典。检查
subItem
我猜它是一个字符串。