I get this error TypeError: string indices must be integers in my Python code
I get this error TypeError: string indices must be integers in my Python code
所以我从 API 中获取数据,看起来像这样
{
"id": "f25d3e90",
"name": "project"
}
这是我的部分代码
data = stratComLibrary.dataGet("v1/package/get-all-by-name?name="+project_num+"&substrMatch=true")
projectId = ""
modelId = ""
assemblyCadIds = []
for i in data:
if i.get("number") == ticket_num:
projectId = (i['projectId'])
modelId = (i['modelId'])
assemblyCadIds = (i.get('assemblyCadIds', []))
data2 = stratComLibrary.dataGet("v1/project/"+projectId+"?include=name%2C%20id")
projectName = ""
for i in data2:
projectName = (i['name'])
第一个请求适用于数据变量,但我在第二个请求中收到此错误
File "path", line 32, in main
projectName = (i['name'])
TypeError: string indices must be integers
每当我执行 print(i) 时,它都会给我一个字符串 "id".. 不太确定这里发生了什么,但它是
"for i in data2"
正在遍历 data2 字典键。
所以 i = "id" 和 "id" 不是对象。
你想要的是:
项目名称 = data2['name']
所以我从 API 中获取数据,看起来像这样
{
"id": "f25d3e90",
"name": "project"
}
这是我的部分代码
data = stratComLibrary.dataGet("v1/package/get-all-by-name?name="+project_num+"&substrMatch=true")
projectId = ""
modelId = ""
assemblyCadIds = []
for i in data:
if i.get("number") == ticket_num:
projectId = (i['projectId'])
modelId = (i['modelId'])
assemblyCadIds = (i.get('assemblyCadIds', []))
data2 = stratComLibrary.dataGet("v1/project/"+projectId+"?include=name%2C%20id")
projectName = ""
for i in data2:
projectName = (i['name'])
第一个请求适用于数据变量,但我在第二个请求中收到此错误
File "path", line 32, in main
projectName = (i['name'])
TypeError: string indices must be integers
每当我执行 print(i) 时,它都会给我一个字符串 "id".. 不太确定这里发生了什么,但它是
"for i in data2" 正在遍历 data2 字典键。 所以 i = "id" 和 "id" 不是对象。
你想要的是: 项目名称 = data2['name']