python将知识图谱的节点关系(CSV或其他格式)转换成Echarts所需的json格式
python将知识图谱的节点关系(CSV或其他格式)转换成Echarts所需的json格式
前言:
1. 此代码以如下(CSV)格式的数据为例,
| 故事 | 时间 | 地点 | 人物 | 
|---|---|---|---|
| xx | 2020 | 安徽合肥 | 小戈 | 
并处理保存为如
{"data": [{"name": "xx"}, {"name": "2020"}, {"name": "\u5b89\u5fbd\u5408\u80a5"}, {"name": "\u5c0f\u6208"}], "links": [{"source": "2020", "target": "2020", "name": "\u65f6\u95f4"}, {"source": "2020", "target": "\u5b89\u5fbd\u5408\u80a5", "name": "\u5730\u70b9"}, {"source": "2020", "target": "\u5c0f\u6208", "name": "\u4eba\u7269"}]}
的JSON文件(中文默认为unicode编码)
2. Echarts得到数据并引用时,如下直接放入即可
,
data: jsonData.data,
links: jsonData.links
3. 得学会举一反三
import csv
import json
# 开始读取数据
# 开始转换为json格式数据
data_json = "{\"data\": ["
links = ", \"links\": ["
data = []
relationship = ['时间', '地点', '人物']
# 使用test.csv,这只是所有数据的一部分
with open('test.csv', encoding="utf-8") as csvfile:
    csv_reader = csv.reader(csvfile)  # 使用csv.reader读取csvfile中的文件
    data_header = next(csv_reader)  # 读取第一行每一列的标题
    # print(data_header)
    for row in csv_reader:  # 将csv 文件中的数据保存到data_data中
        for i in range(len(data_header)):
            if row[i] not in data and row[i] != '':
                data.append(row[i])
                data_json = data_json + '{\"name\":"' + row[i] + '"},'
        # 至此,我们已经获得了所有节点
        for index, relation in enumerate(relationship):
            links = links + '{\"source\":"' + row[1] + '",\"target\":"' + row[index+1] + '\",\"name\":\"' + relation + '\"},'
        # 至此,我们已经获得了所有关系
    # print(len(data))
    data_json = data_json.rstrip(',')
    data_json += "]"
    # print(data_json)
    # 至此,节点已经转换完成,接下来添加关系
    links = links.rstrip(',')
    links += "]}"
    # print(links)
    data_json += links
    # print(data_json)
    # 至此,我们已经获得了data_json数据
# 开始写入json文件
new_data = json.loads(data_json, strict=False)
# print(new_data)
with open("test_result.json", "w", ) as f:
    json.dump(new_data, f)
# 至此我们已经获得了json数据,嫌格式不好看的话可以去网上自己格式化一下
												
											python将知识图谱的节点关系(CSV或其他格式)转换成Echarts所需的json格式的更多相关文章
- 分别用Excel和python进行日期格式转换成时间戳格式
		
最近在处理一份驾驶行为方面的数据,其中要用到时间戳,因此就在此与大家一同分享学习一下. 1.什么是时间戳? 时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01 ...
 - python base64 编解码,转换成Opencv,PIL.Image图片格式
		
二进制打开图片文件,base64编解码,转成Opencv格式: # coding: utf-8 import base64 import numpy as np import cv2 img_file ...
 - python把指定目录下的递归所有目录和文件名转换成小写或大写
		
cat convert.py #!/usr/bin/env python # -*- coding:utf-8 -*- import os, sys def convert(rootdir, opty ...
 - 使用python将ppm格式转换成jpg【转】
		
转自:http://blog.csdn.net/hitbeauty/article/details/48465017 最近有个很火的文章,叫 有没有一段代码,让你觉得人类的智慧也可以璀璨无比? 自己试 ...
 - 中华古诗词知识图谱之实体关系构建&导入neo4j数据库
		
实体分析 诗名实体 属性 包含:作诗时间,诗名,内容,翻译,背景. 关系 实体1 关系 实体2 诗名 形式 诗词形式 诗名 作者 诗人 诗名 分类 类别 诗名 词牌名 词牌名 诗名 曲牌名 曲牌名 诗 ...
 - 在Sql Server 2005中将主子表关系的XML文档转换成主子表“Join”形式的表
		
本文转载:http://www.cnblogs.com/Ricky81317/archive/2010/01/06/1640434.html 最近这段时间在Sql Server 2005下做了很多根据 ...
 - 批量处理csv格式转换成xls
		
结合下面的代码学习相关模块及函数方法的使用 #coding:utf-8 #导入相应模块 import csv import xlwt import sys import os import fnmat ...
 - python 将IP地址转换成打包后的32位格式
		
python 2.7 #!/usr/bin/env python # Python Network Programming Cookbook -- Chapter - # This program r ...
 - python 获取整点时间戳,半整点时间戳 ,同时将时间戳转换成 日期时间
		
import time, datetime def gettime(): for x in range(24): a = datetime.datetime.now().strftime(" ...
 - 仿Neo4j里的知识图谱,利用d3+vue开发的一个网络拓扑图
		
项目需要画一个类似知识图谱的节点关系图. 一开始用的是echart画的. 根据https://gallery.echartsjs.com/editor.html?c=xH1Rkt3hkb,成功画出简单 ...
 
随机推荐
- vue下载zip包到本地
			
<script> import axios from 'axios' export default{ methods: { downloadZip (downloadName, downl ...
 - promethues【centos7】时间同步
			
Promethues和Grafana展示的监控突然消失了,服务器检查发现没什么异常. 当打开promethus网页后,发现有一个错误提示: Warning! Detected 60.44 second ...
 - CSS布局display值inline、block、inline-block区别
			
inline前后不会有换行,block前后会有换行,inline-block前后不会有换行,但内部会换行且可以设置高宽.,如下图所示:
 - 2022-05-07内部群每日三题-清辉PMP
			
1.项目需要一位熟练的工程师来执行某个特定任务,但由于工作量大,该工程师不能参与这个项目.项目经理下一步应该怎么做? A.修改进度计划,以适应该资源 B.与职能经理协商该资源的参与 C.培训项目团队中 ...
 - leetcode 跳跃游戏系列
			
55. 跳跃游戏 能跳一个范围,贪心 class Solution { public: bool canJump(vector<int>& nums) { int m = 0; / ...
 - wps - Word文档打开后不能编辑
			
Word文档打开后不能编辑 解决方式 [审阅]-[限制编辑]-[设置文档的保护方式]-[修订]-[启动保护]-[停止保护] Word文档打开后不能编辑,可以这样处理 打开Word文档后,发现无法输入内 ...
 - CentOS7.6下安装MySql和Redis
			
安装的MySQL为5.7版本1.下载安装官方的Yum Repository [root@localhost ~]# wget http://dev.mysql.com/get/mysql57-comm ...
 - myJRebel 已不可用
			
周末在家里撸代码,突然 IDEA 提示 JRebel 需要激活. 原来一直使用的 myJRebel 的激活码,天真的以为是我的网络问题,尝试重新激活,结果不管用,就想去 myJrebel 的网站上去看 ...
 - 重启nginx 报错 nginx.pid
			
先检查 nginx -c /etc/nginx/nginx.conf 看看端口是否被占用 若占用杀掉 ps -ef | grep nginx kill --- 然后再用nginx -c /etc/ng ...
 - docker之rabbitmq  delayed message exchange
			
创建dockerfile FROM rabbitmq:3.9.11-management-alpine COPY rabbitmq_delayed_message_exchange-3.9.0.ez ...