2017-10-03 8 views
0

これはどういうことが間違っているのかよくわかりません。文字列として結合されている行をインポートしようとすると、その後、CSVで...うーん....タイプエラー:リストインデックスは、strではなく整数でなければなりません。 CSVにstrsを追加中

import csv 
import io 
import os 
import sys 

def putInCSV(): 
    if os.stat("test_attacking_ips_spreadsheet.csv").st_size == 0: 
     temp = open("test_attacking_ips_spreadsheet.csv", 'wb') 
     tempwrite = csv.writer(temp) 
     tempwrite.writerow(["IP Address"]['Hostname']['AS Number']['AS Name']['Net Range']['CC']['Type']['Targets']['Last Seen']['Notes']['FW Block']['Signatures']) 
     #["IP Address"]['Hostname']['AS Number']['AS Name']['Net Range']['CC']['Type']['Targets']['Last Seen']['Notes']['FW Block']['Signatures']# 
     temp.close() 
    Read = open("test_attacking_ips_spreadsheet.csv", 'rb') 
    Append = open("test_attacking_ips_spreadsheet.csv", 'ab') 
    reader = csv.reader(Read) 
    writer = csv.writer(Append) 
    sweetness = len(list(reader)) 
    fileName = ''.join(sys.argv[1:2]) 
    if fileName == '': 
     fileName = raw_input('Input the file with extension\n>') 
    with open(fileName) as f: 
     for line in f: 
      line = ''.join(line) 
      if "|" in line: 
       findStop = line.index("|") 
       ASNum = line[:findStop] 
       if "-" not in ASNum: 
        ASLine = "AS" + ASNum 
       else: 
        ASLine = '' 
       remainder = line[findStop:] 
       findStop = remainder.index("|") 
       ipAdd = remainder[:findStop] 
       HSTNm = '' 
       remainder = line[findStop:] 
       findStop = remainder.index("|") 
       ASName = remainder[:findStop] 

       writer.writerow([ipAdd][HSTNm][ASLine][ASName]) 

putInCSV() 

誰もが私のせいを参照することを置きますか?ほとんどの人がapi情報をリンクしているので、私は簡潔な理由を見つけることができませんでしたが、私の研究をバックアップするのに役立つ情報は見つかりませんでした。

tempwrite.writerow(["IP Address"]['Hostname']['AS Number']['AS Name']['Net Range']['CC']['Type']['Targets']['Last Seen']['Notes']['FW Block']['Signatures']) 
... 
writer.writerow([ipAdd][HSTNm][ASLine][ASName]) 

リストを定義するための構文は、リスト["IP Address"]からインデックス'Hostname'の要素を抽出するl = ["a", "b", "c"]

["IP Address"]['Hostname']試みであり、あなたのエラーにつながる:

Traceback (most recent call last): 
    File "C:\Users\user\Documents\bulk_whois\PutInCSV.py", line 46, in <module> 

    putInCSV() 
    File "C:\Users\user\Documents\bulk_whois\PutInCSV.py", line 44, in putInCSV 

    writer.writerow([ipAdd][HSTNm][ASLine][ASName]) 
TypeError: list indices must be integers, not str 
+0

正確なエラーを投稿できますか? –

+0

はエラーを追加しました – GarnetSunset

答えて

0

これらの行は単純に間違っています。

+0

パーフェクト!ありがとう! – GarnetSunset

関連する問題