[英]TypeError: string indices must be integers with .json() dictionary
[英]I want to print out dictionary json file content but i get an error string indices must be integers
class 人是基地 class。
import json
class Person():
"""
class Person
"""
def __init__(self, name, ssn, home_address=""):
"""
init method, constructor
"""
self.name = name
self._ssn = ssn
self.home_address = home_address
# class teacher inherits from class teacher
#
class Teacher(Person):
"""
class Teacher
"""
def __init__(self, name, ssn, home_address=""):
"""
init method, constructor
"""
super().__init__(name, ssn, home_address)
@classmethod
def from_json(cls, json_data):
"""
class method to read data from json file
"""
#print(json_data)
return cls(json_data["name"], json_data["ssn"], json_data["courses"])
if __name__ == "__main__":
teacher_json = json.load(open('teacher.json', encoding='utf-8'))
teachers = []
print(teacher_json)
for k in teacher_json:
#print(k)
print(teachers.append(Teacher.from_json(k))
print(teacher_json)
和 json(teacher.json) 文件内容:
{
"name": "Steve",
"ssn": "482075-3621",
"courses": [
"oopython",
"oophp"
]
}
teacher.json 包含创建和返回 class Teacher 的新实例的数据,但是当我看到我的代码时,我注意到我的 JSON 文件是一个字典,我试图将它作为列表打印出来,但我得到了这个错误string indices must be integers
结果应该是这样的: 姓名:史蒂夫 SSN:482075-3621 课程:oopython,oophp
这个解决
import json
class Person():
"""
class Person
"""
def __init__(self, name: str, ssn: str, home_address=[]):
"""
init method, constructor
"""
self.name = name
self._ssn = ssn
self.home_address = home_address
# class teacher inherits from class teacher
#
class Teacher(Person):
"""
class Teacher
"""
def __init__(self, name: str, ssn: str, home_address=[]):
"""
init method, constructor
"""
super().__init__(name, ssn, home_address)
@classmethod
def from_json(cls, json_data):
"""
class method to read data from json file
"""
return cls(str(json_data["name"]), str(json_data["ssn"]), list(json_data["courses"]))
if __name__ == "__main__":
teacher_json = json.load(open('teacher.json', encoding='utf-8'))
teachers = []
for k in teacher_json:
teacher = Teacher.from_json(teacher_json)
data = teachers.append(teacher)
# print(teachers[0].name)
print(teachers)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.