Python json 오류 xx is not JSON serializable 해결 방법
2807 단어 PythonJSONserializable
제 이 슨 을 사용 할 때 xxx 를 자주 만 나 요. is not JSON serializable,즉 특정 대상 을 정렬 할 수 없습니다.django 를 자주 사용 하 는 학생 들 은 django 에 시간 등 자주 사용 하 는 대상 이 있다 는 것 을 알 고 있 습 니 다.사실 우 리 는 특정 유형의 대상 에 대한 서열 화 를 스스로 정의 할 수 있 으 며,아래 에서 어떻게 정의 하고 사용 하 는 지 볼 수 있다.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#json_extention
#2014-03-16
#copyright: orangleliu
#license: BSD
'''''
python dumps , dict json
,
:
http://docs.python.org/2.7/library/json.html
:
In [3]: from datetime import datetime
In [4]: json_1 = {'num':1112, 'date':datetime.now()}
In [5]: import json
In [6]: json.dumps(json_1)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
D:\devsofts\python2.7\lib\site-packages\django\core\management\commands\shell.py
c in <module>()
----> 1 json.dumps(json_1)
TypeError: datetime.datetime(2014, 3, 16, 13, 47, 37, 353000) is not JSON serial
izable
'''
from datetime import datetime
import json
class DateEncoder(json.JSONEncoder ):
def default(self, obj):
if isinstance(obj, datetime):
return obj.__str__()
return json.JSONEncoder.default(self, obj)
json_1 = {'num':1112, 'date':datetime.now()}
print json.dumps(json_1, cls=DateEncoder)
'''''
:
PS D:\code\python\python_abc> python .\json_extention.py
{"date": "2014-03-16 13:56:39.003000", "num": 1112}
'''
#
class User(object):
def __init__(self, name):
self.name = name
class UserEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, User):
return obj.name
return json.JSONEncoder.default(self, obj)
json_2 = {'user':User('orangle')}
print json.dumps(json_2, cls=UserEncoder)
'''''
PS D:\code\python\python_abc> python .\json_extention.py
{"date": "2014-03-16 14:01:46.738000", "num": 1112}
{"user": "orangle"}
'''
정의 처리 방법 은 json.JSONencoder 의 하위 클래스 를 계승 하 는 것 입 니 다.사용 할 때 dumps 방법의 cls 함수 에 사용자 정의 처리 방법 을 추가 합 니 다.읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.