我收到“ TypeError:字符串索引必须是整数”,并带有以下代码。
import json
j = {
"id": 1000,
"name": "John Doe"
}
def test(j):
if j['id']:
print("Value present")
else:
print("No Id found")
test(j)
现在运行它:
python3 delme.py
Value present
Traceback (most recent call last):
File "delme.py", line 15, in <module>
test("")
File "delme.py", line 9, in test
if j['id']:
TypeError: string indices must be integers
但是,如果我执行以下操作,则在一个新的Python实例中,此评估工作正常吗?
if j['id']
print("WORKS")
将j传递给函数时会发生什么变化?另外,J将永远只有一个“ id”键,那么验证它是否存在的最简单方法是什么?
答案 0 :(得分:2)
The code you posted is fine。您发布的错误包括normalize(rooms, roomsSchema)
,这不是您发布的代码。
test("")
是函数的j
的参数,因此python在test
中查找局部变量。如果您尝试使用全局,则定义不带参数的测试
test
对于将重现错误的代码,全局j = {
"id": 1000,
"name": "John Doe"
}
def test(): # note: empty ()
if j['id']:
print("Value present")
else:
print("No Id found")
test() # added a call here
无关紧要:
j