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

猜你喜欢

转载自blog.csdn.net/Cocktail_py/article/details/113351238
今日推荐