Heavymantory 2023-03-03 14:27 采纳率: 71.4%
浏览 41
已结题

关于#python#的问题:利用python构建知识图谱,在创建关系时一直报错

利用python构建知识图谱,在创建关系时一直报错,内容如下

Traceback (most recent call last):
  File "F:/pythonProject/Hot spot tracking.py", line 166, in <module>
    handler.create_graphrels()  # 建立实体关系边
  File "F:/pythonProject/Hot spot tracking.py", line 109, in create_graphrels
    self.create_relationship('author', 'article', rels_writer, 'first_author', '第一作者')
  File "F:/pythonProject/Hot spot tracking.py", line 121, in create_relationship
    set_edges.append('###'.join(edge))
TypeError: sequence item 0: expected str instance, list found

对应代码如下

```python
    def create_graphrels(self):
        author, article, year, direction, field,  rels_writer, rels_publish, rels_prefer, rels_major = self.read_nodes()
        self.create_relationship('author', 'article', rels_writer, 'first_author', '第一作者')
        self.create_relationship('article', 'year', rels_publish, 'publish_time', '发表于')
        self.create_relationship('article', 'direction',  rels_prefer, 'art_direction', '研究方向')
        self.create_relationship('article', 'field', rels_major, 'art_field', '研究领域')

求助一下大神们


  • 写回答

3条回答 默认 最新

  • 社区专家-Monster-XH 2023-03-03 14:45
    关注

    基于Monster 组和GPT的调写:
    可以看出问题出现在 create_relationship 函数的调用中。错误信息显示出现了类型错误,即期望得到字符串类型的实例,但实际上却传入了列表。

    可能的原因是在 create_relationship 函数中的 edge 参数是一个列表,而在 set_edges.append('###'.join(edge)) 这行代码中,将列表 edge 直接传入了字符串的 join() 方法中。导致 join() 方法无法处理列表类型的数据,而引发了类型错误

    set_edges.append('###'.join(map(str, edge)))
    
    
    

    将 edge 中的所有元素都转换成字符串类型,再用字符串的 join() 方法将它们连接成一个字符串。这样就避免了类型错误的出现。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月6日
  • 已采纳回答 3月3日
  • 创建了问题 3月3日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么