PythonでオブジェクトのリストをJSONに変換する 質問する

PythonでオブジェクトのリストをJSONに変換する 質問する

Objectインスタンスを JSON に変換するときに問題が発生します。

ob = Object()

list_name = scaping_myObj(base_url, u, number_page)

for ob in list_name:
   json_string = json.dumps(ob.__dict__)
   print json_string

list_nameインスタンスのリストがありますObject

json_string戻り値:

{"city": "rouen", "name": "1, 2, 3 Soleil"}
{"city": "rouen", "name": "Maman, les p'tits bateaux"}

しかし、私はリスト内のすべての情報を含む 1 つの JSON 文字列だけが欲しいのです。

[{"city": "rouen", "name": "1, 2, 3 Soleil"}, {"city": "rouen", "name": "Maman, les p'tits bateaux"}]

ベストアンサー1

リストの内包表記を使用して辞書のリストを作成し、それを変換することができます。

json_string = json.dumps([ob.__dict__ for ob in list_name])

またはdefault関数を使用します。json.dumps()シリアル化できないものに対して関数を呼び出します。

def obj_dict(obj):
    return obj.__dict__

json_string = json.dumps(list_name, default=obj_dict)

後者は、リストだけでなく、構造の任意のレベルに挿入されたオブジェクトに対して機能します。

個人的には、次のようなプロジェクトを使用しますマシュマロもっと複雑なものを扱うには、例えばサンプルデータの処理は次のように行います。

from marshmallow import Schema, fields

class ObjectSchema(Schema):
    city = fields.Str()
    name = fields.Str()

object_schema = ObjectSchema()
json_string = object_schema.dumps(list_name, many=True)

おすすめ記事