2012-04-11 31 views
0

私はPythonには新しく、テキスト文書から縦棒グラフを作成する課題がありました。x軸情報をリストに入れ、データもリストに入れました。 。私が抱えている問題は、次のようなエラーが出てチャートを出力しようとしたときです:TypeError: - 'str'と 'int'のサポートされていないオペランドタイプ。そして、私はそのエラーを解決する方法を理解するために苦労しています。 リストの1つをタイプキャストする必要がありますか?あるいは、それを行う方法が間違っていますか?私はあなたのために十分に明確だったオペランドエラーreportlabを使用してグラフを作成する

from reportlab.graphics.shapes import Drawing 
from reportlab.graphics.charts.barcharts import VerticalBarChart 

ExifOutput = open('ExifOutput.txt', 'r') 

ImageMakeContainer = [] 
Container = [] 
makeList = [] 
numberList = [] 

lineReader = ExifOutput.readlines() 

for line in lineReader: 
    if 'Image Make: ' in line: 
     ImageMakeContainer.append(line[13:-2]) 

for item in set(ImageMakeContainer): 
    Container.append(item + " " + str(ImageMakeContainer.count(item))) 

print Container 

for data in Container: 

    [int(num) for num in data.split() if num.isdigit()] 

    make = data[0:-(len(num) + 1)] 

    makeList.append(make) 
    numberList.append(num) 

print numberList 
print makeList 

ExifOutput.close() 

data = numberList 
axis = makeList 

graph = Drawing(400, 300) 

chart = VerticalBarChart() 
chart.width = 300 
chart.height = 200 
chart.x = 30 
chart.y = 40 
chart.data = data 
chart.categoryAxis.categoryNames = axis 
chart.valueAxis.valueMin = 0 

graph.add(chart) 
graph.save(fnRoot='TestGraph', formats=['png', 'pdf']) 

希望:

は、ここに私のコードです。 (print文は、リストの内容を確認するだけである)

次のように[EDIT]印刷物の出力は次のとおりです。

['Apple 1', 'FUJIFILM 5', 'Samsung Techwin 1'] 
['1', '5', '1'] 
['Apple', 'FUJIFILM', 'Samsung Techwin'] 

答えて

0

を文字列にPythonのint型を置くために、あなたはちょうどそれをバックティックの間に置く必要がありますlike_this。例えば、

print three + `3` 

はまた

print "three%d" % 3 
のように、フォーマットを使用してのものと同じ種類のを達成することができます
関連する問題