出现的问题
使用sutime包时报错:the JSON object must be str, bytes or bytearray, not ‘java.lang.String’
解决方法
在sutime.py 中最后是这样的:
return json.loads(self._sutime.annotate(input_str, reference_date))
return json.loads(self._sutime.annotate(input_str))
将其改为:
return json.loads(str(self._sutime.annotate(input_str, reference_date)))
return json.loads(str(self._sutime.annotate(input_str)))
解决方式来源于: 点击此处传送.
感兴趣可以去上述网址进行查看!
测试sutime包(该部分也参考于上述网址)
import json
import os
from sutime import SUTime
if __name__ == '__main__':
test_case = "I need a desk for tomorrow from 2pm to 3pm"
# 其中D:/python_projects/SPARQA/common_resources/resources_sutime/python-sutime-master/jars是下载的java依赖路径
jar_files = os.path.join(os.path.dirname('D:/python_projects/SPARQA/common_resources/resources_sutime/python-sutime-master/jars'),'jars')
sutime = SUTime(jars=jar_files, include_range=True)
print(json.dumps(sutime.parse(test_case), sort_keys=True, indent=4))
运行结果为:
[
{
"end": 26,
"start": 18,
"text": "tomorrow",
"type": "DATE",
"value": "2021-12-31"
},
{
"end": 35,
"start": 32,
"text": "2pm",
"type": "TIME",
"value": "2021-12-30T14:00"
},
{
"end": 42,
"start": 39,
"text": "3pm",
"type": "TIME",
"value": "2021-12-30T15:00"
}
]