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)