TypeError: Object of type Span is not JSON serializable
# 使用pytextrank生成提取相应的关键词数据,通过json序列化返回数据给调用方时抛出了"TypeError: Object of type Span is not JSON serializable"异常
import json
json.dumps([{ 'p.rank': '0.2500', 'p.count': 1, 'p.text': 'hello word', 'p.chunks': [hello word]}])
解决思路
class DictEncoder(json.JSONEncoder):
def default(self, obj):
return obj.__dict__
# 获取json序列化相应对象
json.dumps(data_list, cls=DictEncoder)
# 将异常对象进行相应格式转化强转
from spacy.tokens.span import Span
class DictEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, Span):
return str(obj)
return obj.__dict__
json.dumps(data_list, cls=DictEncoder)
How to make a class JSON serializable
还没有评论,来说两句吧...