我试图在python中添加sql文件中的节点和边缘 但艾特知道我是怎么做到的!
我想将节点和边添加到graphml文件中,以便稍后在GEPHI中使用。
第一个代码从文本文件创建sql文件。
import re
import sqlite3
conn = sqlite3.connect('imdb1.db')
c = conn.cursor()
c.execute('''CREATE TABLE imdb1 (ROWID INTEGER PRIMARY KEY, Title, Rating)''')
x = open("ratings.list.txt","r")
movread = x.readlines()
x.close()
#s = raw_input('Search: ').lower()
for ns in movread:
if 'the lord of the' in ns.lower():
d = re.split('\s+',ns,4)
Title = d[4].rstrip()
Rating= d[3]
list = [Title,Rating]
# print list
# Insert a row of data
c.execute('INSERT INTO imdb1 ( Title, Rating) values (?, ?)', (list[0],list[1]))
conn.commit()
这应该将节点添加到图表中。
import networkx as nx
g=nx.Graph()
def add_node_tw(n, weight=None, time=None, source=None, location=None):
if not g.has_node(n):
screen_name=get_user_info(n)
g.add_node(n)
g.node[n]['weight']=1
g.node[n]['Title']=Title
else:
g.node[n]['weight']+=1
这应该添加边缘:
def add_edge_tw(n1,n2,weight=None):
if not g.has_edge(n1,n2):
g.add_edge(n1,n2)
g[n1][n2]['weight']=1
else:
g[n1][n2]['weight']+=1
最后一部分从我的sql文件中添加边和节点,并将其放在graphml文件中。
users = set()
for u in c:
users.add(u['ROW_ID'])
g = nx.DiGraph()
for ROW_id in users:
add_node_tw(R_id)
for row in c.execute('SELECT * FROM imdb1 ORDER BY Rating'):
print row
for row in con.cursor():
if row['ROWID'] in users:
add_node_tw(row['ROWID'])
add_node_tw(row['ROWID'], row['ROWID'])
nx.write_graphml(g, '%s_graphml' % table)
我试图重写另一个人做的一些代码并且用这个来运行我知道它根本没有完成但我试图走上正确的轨道但我不擅长python并需要很多帮助。谢谢你们:)