2013-04-10 48 views
0

我正在使用汇总和总和来确定每个月工作的小时数。我有它的工作,但“小时”变量总是有额外的内容!将汇总结果转换为字符串

我应该补充说,我是django的新手,我从这里获得了大部分代码(Django beginner: How to query in django ORM to calculate fields based on dates)。

我的代码:

hours = "" 
work_data = "" 
month_data = "" 

for month in range(1,13): 
    entries_per_month = Mydata.objects.filter(myTimePeriod__month=month).filter(myResource="James") 
    hours = str(entries_per_month.aggregate(value=Sum('myHoursLogged'))) 
    month_data = month_data + "'" + str(month) + "'," 
    work_data = work_data + hours + "," 

我看work_data结果:

work_data 

这给我的{'value': Decimal('136.80')},{'value': Decimal('146.40')}结果,

我需要它的格式为:136.80, 146.40(这是图表库所需的格式)。我曾尝试使用str()来转换它,但它似乎不起作用在这种情况下。

回答

0

str在这里没用,因为你的数据是一个字典列表。你只需要处理,并得到结果:

hours = ','.join(str(v['value']) for v in entries_per_month) 
+0

谢谢,但我不明白这一点。我会在哪里插入这一行?我应该使用什么“价值”? – James 2013-04-10 12:40:57

+1

你把它放在上面的代码中,代替具有'str'的​​行。我不知道你的意思是说“我应该用什么'价值'”。请注意,这是相当基本的Python,如果你在这里挣扎,你应该做一个Python教程。 – 2013-04-10 12:42:12