私はのpython:ValueErrorを:int型のための無効なリテラル()ベース10と:「」
70154::308933::3
UserId::ProductId::Score
のようなエントリを含むテキストファイルを持っている私が読むためにこのプログラムを書いた: (申し訳ありませんindendetionは少し混乱していますここまで)
def generateSyntheticData(fileName):
dataDict = {}
# rowDict = []
innerDict = {}
try:
# for key in range(5):
# count = 0
myFile = open(fileName)
c = 0
#del innerDict[0:len(innerDict)]
for line in myFile:
c += 1
#line = str(line)
n = len(line)
#print 'n: ',n
if n is not 1:
# if c%100 ==0: print "%d: "%c, " entries read so far"
# words = line.replace(' ','_')
words = line.replace('::',' ')
words = words.strip().split()
#print 'userid: ', words[0]
userId = int(words[0]) # i get error here
movieId = int (words[1])
rating =float(words[2])
print "userId: ", userId, " productId: ", movieId," :rating: ", rating
#print words
#words = words.replace('_', ' ')
innerDict = dataDict.setdefault(userId,{})
innerDict[movieId] = rating
dataDict[userId] = (innerDict)
innerDict = {}
except IOError as (errno,strerror):
print "I/O error({0}) :{1} ".format(errno,strerror)
finally:
myFile.close()
print "total ratings read from file",fileName," :%d " %c
return dataDict
しかし、私はエラーを取得:
ValueError: invalid literal for int() with base 10: ''
おかしい事は、それがworkiで、あります他のファイルから同じフォーマットのデータを読み込んでいるだけです。 実際にこの質問を投稿しているうちに、私は何か変わったことに気付きました。 エントリ70154 :: 308933 :: 3 各数字にはスペース7 1スペース5スペース4スペース::スペース3 ... テキストファイルをきれいに見えます。:(コピー貼り付け時には、この性質が表示されます.. とにかく..何か手掛かりがあります。 おかげ
どのようにテキストファイルを読んでいますか?あなたのコードを投稿してください。 – jozzas