0

Neo4j データベースからドメインのリストを取得し、IP でルックアップを実行し、まだ存在しない場合は関係を作成する次のコードがあります。リレーションシップが作成されるコードの最後の数行までは正常に機能します。次のエラーが表示されます。リストにドメインと IP の 2 つの項目があることを確認したので、なぜエラーが発生するのかわかりません。

  File "C:\Python26\beta7_whois4j_monitor_debug.py", line 63, in createrels
  rels1 = graph_db.get_or_create_relationships((whoisnodes[0], "links", whoisnodes[1]))
  IndexError: list index out of range

コードは次のとおりです。

whoisindex = graph_db.get_or_create_index(neo4j.Node, "whoisID")
domains = whoisindex.query("whoisID:*com")

for i in domains:
    list1 = []
    value1 = "{0}".format(i['whoisID'])
    try:
        e = socket.gethostbyname(value1)
    except socket.gaierror:
        e = 'exclude from list'
    if e != 'exclude from list':
        list1.append(value1)
        list1.append(e)
        for word in list1:
            whoisnodes = []
            whoisnodes.append(whoisindex.get_or_create("whoisID", word, "whoisID":word}))
            rels1 = graph_db.get_or_create_relationships(
            (whoisnodes[0], "links", whoisnodes[1]))
            print "{0}".format(i['whoisID']) 
4

2 に答える 2

0

2回目の試行ですが、JSONエラーが返されます:

whoisindex = graph_db.get_or_create_index(neo4j.Node, "whoisID")
domains = whoisindex.query("whoisID:*com")

for i in domains:
list1 = []
value1 = "{0}".format(i['whoisID'])    
try:
    e = socket.gethostbyname(value1)
except socket.gaierror:
    e = 'exclude from list'
if e != 'exclude from list':
    list1.append(value1)
    list1.append(e)        
    list1.append(whoisindex.get_or_create("whoisID", i, {"whoisID":i}))
    rels1 = graph_db.get_or_create_relationships(
        (list1[0], "links", list1[1]))
    print "{0}".format(i['whoisID']) 
于 2013-01-25T16:42:42.630 に答える
0

あなたがここで何をしようとしているのか、私は少し混乱しています。ループの反復ごとfor word in listに、whoisnodes を新しいリストにリセットしてから、以下の行に単一のアイテムを追加します。これは、 を呼び出すまでにリスト内に1 つの項目しか存在できないことを意味します。get_or_create_relationshipsIndexErrorwhoisnodes[1]

whoisnodes = []ループの外にいるということですか?

ちなみに、タイプミスもあります(中括弧がありません):

whoisindex.get_or_create("whoisID", word, "whoisID":word})

読む必要があります:

whoisindex.get_or_create("whoisID", word, {"whoisID":word})
于 2013-01-25T07:02:14.070 に答える