python读取文档列表数据为列表并统计某一项数据制成邻接矩阵
作者:互联网
python读取文档列表数据为列表并统计某一项数据制成邻接矩阵
文章目录
import json
from pandas import DataFrame
import json
import numpy as np
file = open('db.txt', encoding='UTF-8')
js = file.read()
dic = json.loads(js)
#print(dic)
file.close()
authors=[]
authors_id={}
empty=[]
author_name={}
maxtrix = np.zeros((100, 100))
#第一个循环代表遍历每一篇论文
for leng_dic in range(len(dic)):
author_dic=dic[leng_dic].get('authors', [])
if author_dic is None:
empty.append(leng_dic)
else:
author_now = []
for i in range( len(author_dic)):
author_name[author_dic[i]['_id']] = author_dic[i]['name']
##给每一个作者制定编号
if author_dic[i]['_id'] not in authors:
authors.append(author_dic[i]['_id'])
authors_id[author_dic[i]['_id']]=len(authors)
#print(authors_id)
else:
authors_id[author_dic[i]['_id']]=authors_id[author_dic[i]['_id']]
author_now.append(author_dic[i]['_id'])
##依据编号,给当前遍历的论文作者制定邻接矩阵
for author_id_now in author_now:
for author_id_now1 in author_now:
a=authors_id[author_id_now]
b=authors_id[author_id_now1]
maxtrix[a][b]=maxtrix[a ][b ]+1
maxtrix[b][a] = maxtrix[b][a] + 1
print(maxtrix)
data_frame = DataFrame(data=maxtrix)
data_frame.to_csv('maxtrix.csv')
print(authors_id)
print(author_name)
print(len(authors_id))
print(len(author_name))
标签:author,python,邻接矩阵,dic,print,authors,maxtrix,列表,id 来源: https://blog.csdn.net/qq_48345413/article/details/121345651