Python将对象列表转换为JSON字符串

2024-09-21 01:18:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将Python对象列表解析为Json字符串。我有一个名为“list_mitarbeiter”的Python对象列表。此列表中有Mitarbeiter的对象:

class Mitarbeiter:
    def __init__(self, _id, name, nachname):
        self._id = _id
        self.name = name
        self.nachname = nachname

我尝试使用以下代码将列表\u mitarbeiter解析为JSON字符串:

x = json.dumps(z.__dict__ for z in list_mitarbeiter)

每次尝试此操作时,都会出现一个错误:generator类型的对象不可JSON序列化

我已经用列表中的一个对象做了,它工作了,我不明白为什么当我用列表中每个对象的for循环做的时候它不工作

x=json.dumps(list_mitarbeiter[1]。dict) ^^ 这是有效的

这是我的全部代码:

rom pymongo import MongoClient
from flask import Flask
import json

app = Flask(__name__)

class Mitarbeiter:
    def __init__(self, _id, name, nachname):
        self._id = _id
        self.name = name
        self.nachname = nachname



@app.route('/getallmitarbeiter')
def index():
    cluster = MongoClient("<CONNECTON STRING>")
    db = cluster["DP_0001"]
    collection = db["Mitarbeiter"]

    mitarbeiter = collection.find({})

    list_mitarbeiter = []

    for worker in mitarbeiter:
        test1 = Mitarbeiter(worker["_id"], worker["name"], worker["nachname"])
        list_mitarbeiter.append(test1)

    x = json.dumps(z.__dict__ for z in list_mitarbeiter)
    return x


if __name__ == '__main__':
    app.run(debug=True)

Tags: 对象nameselfidjson列表fordef
1条回答
网友
1楼 · 发布于 2024-09-21 01:18:07

JSON不能对生成器进行编码,它需要字符串、数字、布尔、无、元组、列表或字典。只需将生成器理解转换为列表理解即可:

x = json.dumps([z.__dict__ for z in list_mitarbeiter])

相关问题 更多 >

    热门问题