我正在尝试从json文件加载简单对象。但是我在这方面出错了。以下是我的代码,以及db.txt文件中json格式的数据。我正在从其他一些类调用model.py的getAll()函数。
文件:model.py
class MyImageView(pyqtgraph.ImageView):
def wheelEvent(self, event):
event.accept()
# you can do the same with other mouse events, if that's your issue too
def mousePressEvent(self, event):
event.accept()
class YourWidget(QtWidgets.QWidget):
def __init__(self, *args, **kwargs):
QtWidgets.QWidget.__init__(self, *args, **kwargs)
[...]
im1 = MyImageView()
文件:db.txt
import simplejson
class Person(object):
def __init__(self, first_name = None, last_name = None):
self.first_name = first_name
self.last_name = last_name
def name(self):
return ("%s %s"%(self.first_name, self.last_name))
@classmethod
def getAll(self):
database = open('db.txt', 'r')
result = []
json_list = simplejson.loads(database.read())
print("json list {}".format(json_list))
for item in json_list:
print("item {}".format(item))
print("type of item {}".format(type(item)))
item = simplejson.loads(item)
person = Person(item['first_name'], item['last_name'])
result.append(person)
return result
错误(输出):
[
{
"first_name":"first name",
"last_name":"last name"
},
{
"first_name":"first name 2",
"last_name":"last name 2"
}
]
答案 0 :(得分:4)
simplejson.loads(database.read())
一直解析JSON。您不需要在每个级别上都做到这一点。由于item
已经是字典,因此您可以立即使用它。
答案 1 :(得分:-2)
const events = await Event.findAll({
where: {
[Op.or]: [
{ homeId: { [Op.eq]: id } },
{ awayId: { [Op.eq]: id } }
],
status: { [Op.eq]: 'FINISHED' }
},
order: [[sequelize.col('date'), 'DESC']],
attributes: ['date'],
raw: true,
});
return events.map((event) => event.date);
db_list是词典列表,您可以遍历这些词典并以这种方式访问每个词典。