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"}
단, JSON 문자열 1개만 목록에 모든 정보가 포함되어 있으면 좋겠습니다.
[{"city": "rouen", "name": "1, 2, 3 Soleil"}, {"city": "rouen", "name": "Maman, les p'tits bateaux"}]
목록 이해를 사용하여 사전 목록을 생성한 다음 다음을 변환할 수 있습니다.
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)
@MartijnPieters의 답변과 마찬가지로 json.dumps를 사용할 수 있습니다.default별도의 함수를 만들지 않으려는 경우 다음과 같이 입력합니다. json.dumps(obj, default = lambda x: x.__dict__)
이 문제에 대한 또 다른 가능한 해결책으로 jsonpickle을 들 수 있습니다.jsonpickle은 Python 객체를 JSON으로 변환하는 데 사용할 수 있습니다(단순 목록뿐만 아니라).
jsonpickle 홈페이지에서:
jsonpickle은 JSON과 주고받는 복잡한 Python 객체를 직렬화 및 직렬화 해제하기 위한 Python 라이브러리입니다.stdlib의 json, simplejson 및 demjson과 같이 Python을 JSON으로 인코딩하기 위한 표준 Python 라이브러리는 직접적인 JSON 상당(dicts, lists, string, int 등)을 가진 Python 프리미티브만 처리할 수 있습니다.json pickle은 이러한 라이브러리 위에 구축되어 더 복잡한 데이터 구조를 JSON으로 직렬화할 수 있습니다.jsonpickle은 설정 및 확장성이 뛰어나 사용자가 JSON 백엔드를 선택하고 백엔드를 추가할 수 있습니다.
변환의 실행은 간단합니다.
import jsonpickle
class JsonTransformer(object):
def transform(self, myObject):
return jsonpickle.encode(myObject, unpicklable=False)
언급URL : https://stackoverflow.com/questions/26033239/list-of-objects-to-json-with-python
'source' 카테고리의 다른 글
| Wordpress 플러그인 프로그램 설치 및 활성화 (0) | 2023.03.23 |
|---|---|
| 동일한 이름의 내보낸 클래스 두 개 가져오기 (0) | 2023.03.23 |
| React 렌더링된 구성 요소에서 CSS를 사용한 스크롤 방지 (0) | 2023.03.23 |
| React 구성 요소에서 PDF 파일 생성 (0) | 2023.03.23 |
| unix:/var/run/php5-fpm.sock에 연결하지 못했습니다.설정에 문제가 있는 것은 무엇입니까? (0) | 2023.03.23 |