python - ValueError:列集合中已存在名称“主题标识 [Individual/Pool]”。参数名称:值
问题描述
下面的代码返回一个错误:我没有发现这个错误谷歌搜索..
import datetime
from Spotfire.Dxp.Data import IndexSet
from Spotfire.Dxp.Data import RowSelection
from Spotfire.Dxp.Data import IndexSet, DataValueCursor, RowSelection
from Spotfire.Dxp.Data.DataType import DateTime
dictTable = Document.Data.Tables['Column renaming mapping']
dictionary = dict()
key = 0
value = 0
colNum = 0
cursorKeys = DataValueCursor.CreateFormatted(dictTable.Columns['PDW short name'])
cursorValues = DataValueCursor.CreateFormatted(dictTable.Columns['PDW long name'])
rowCount = dictTable.RowCount
rowsToInclude = IndexSet(rowCount,True)
for row in dictTable.GetRows(rowsToInclude,cursorKeys,cursorValues):
rowIndex = row.Index
key = cursorKeys.CurrentValue
print key
val = cursorValues.CurrentValue
print val
dictionary[key] = val
for table in Document.Data.Tables:
for col in table.Columns:
if col.Name in dictionary:
col.Name = dictionary[key]
当然我做错了什么。我的目标是遍历所有表并修改某些列的命名。我希望它们按照我称为 discTable 的表进行修改。
根据代码生成的内容添加完整错误和打印结果。
TSRECID
TS Record ID
STUDYKEY
PDW unique ID
INSERTDT
Record entry date
UPDATEDT
Record update date
AUDITID
Transaction unique ID
SPONSOR
Sponsor
PSMSNAME
Preclinical Study Management System
STUDYID
Study ID
STUDYTITLE
Study title
PROJID
PIMS project ID
PROJDESC
PIMS project description
ETHICPROJ
PIMS ethical project
STUDYCAT
PIMS study category
STUDYTP
PIMS study type
PROTSTATUS
PIMS protocol status
STDPROTID
PIMS standard protocol ID
RATIONALE
Scientific Rationale
PRIMOBJECTIVE
Primary objective
SECOBJECTIVE
Secondary objective
NBSUBJECTS
Number of subjects
SUBLVLID
Subject identification [Individual/Pool]
Traceback (most recent call last):
File "Spotfire.Dxp.Application.ScriptSupport", line unknown, in ExecuteForDebugging
File "<string>", line 31, in <module>
File "Spotfire.Dxp.Data", line unknown, in set_Name
ValueError: The name 'Subject identification [Individual/Pool]' already exists in the column collection.
Parameter name: value
System.ArgumentException: The name 'Subject identification [Individual/Pool]' already exists in the column collection.
Parameter name: value
at Spotfire.Dxp.Data.DataColumn.set_Name(String value)
at _stub_$25##25(Closure , CallSite , Object , Object )
at Microsoft.Scripting.Actions.MatchCaller.Call2[T0,T1,TRet](Func`4 target, CallSite site, Object[] args)
at Microsoft.Scripting.Actions.CallSite`1.UpdateAndExecute(Object[] args)
at Microsoft.Scripting.Actions.UpdateDelegates.Update2[T,T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
at <module>$4##4(Closure , Scope , LanguageContext )
at Microsoft.Scripting.SourceUnit.Execute(Scope scope, ErrorSink errorSink)
at Spotfire.Dxp.Application.ScriptSupport.IronPythonScriptEngine.ExecuteForDebugging(String scriptCode, Dictionary`2 scope, Stream outputStream)
解决方案
如果您尝试将列重命名为表中已使用的列(给定表中的 2 列不能具有相同的名称),您将收到此错误。我建议找出导致错误的表并仔细检查是否还没有名为“主题标识 [个人/池]”的列
谢谢,杰克!
推荐阅读
- html - 如何将 tabindex 设置为列表项内的按钮?
- c# - 如何使用 Entity Framework Core Database First 从数据库中生成属性类型 bool
- google-colaboratory - Google colab notebook 上的 Corgi 模式是什么?
- react-native - 用户打开通知时导航
- tfs - Azure DevOps 本地成本
- laravel - 在 Laravel 中发送批量电子邮件
- reactjs - 未捕获的 DOMException:无法在“元素”上执行“createShadowRoot”:无法在已托管影子树的主机上创建影子根
- java - 迭代测试用例并将数据发送到java中的函数
- python - 列出按描述符类型过滤的对象属性
- windows - 子进程 Python 2.7 模块:“Windows 错误:[错误 5] 访问被拒绝