'int' object has no attribute 'append' if order_date_str not in year_region_data: year_region_data[order_date_str] = {"sales": 0, "quantity": 0, "profit": 0,"region":[]} year_region_data[order_date_str]["sales"].append(order["sales"]) year_region_data[order_date_str]["quantity"] += order["quantity"] year_region_data[order_date_str]["profit"] += order["profit"] year_region_data[order_date_str]["region"].append(order["region"]) for year, year_region_data in year_region_data.items(): data['order_date'].append(year_region_data) data['sales'].append(year_region_data["sales"]) data['quantity'].append(year_region_data["quantity"]) data['profit'].append(year_region_data["profit"]) data['region'].append(year_region_data["region"]) return JsonResponse(data)
时间: 2023-08-20 22:45:06 浏览: 81
这段代码中出现了一个错误:'int' object has no attribute 'append'。这是因为在代码中有一个地方尝试将一个 int 类型的对象(order["sales"])使用 append 方法添加到 year_region_data[order_date_str]["sales"] 中,而 append 方法只能用于列表等可迭代对象,而 int 类型的对象不是可迭代对象。可能需要将 year_region_data[order_date_str]["sales"] 改为列表类型。
相关问题
改正代码'int' object has no attribute 'append' if order_date_str not in year_region_data: year_region_data[order_date_str] = {"sales": 0, "quantity": 0, "profit": 0,"region":[]} year_region_data[order_date_str]["sales"].append(order["sales"]) year_region_data[order_date_str]["quantity"] += order["quantity"] year_region_data[order_date_str]["profit"] += order["profit"] year_region_data[order_date_str]["region"].append(order["region"]) for year, year_region_data in year_region_data.items(): data['order_date'].append(year_region_data) data['sales'].append(year_region_data["sales"]) data['quantity'].append(year_region_data["quantity"]) data['profit'].append(year_region_data["profit"]) data['region'].append(year_region_data["region"]) return JsonResponse(data)
可以尝试将 year_region_data[order_date_str]["sales"] 的值初始化为一个空列表,然后再将 order["sales"] 添加到列表中,即可解决该问题。修改后的代码如下:
```
if order_date_str not in year_region_data:
year_region_data[order_date_str] = {"sales": [], "quantity": 0, "profit": 0,"region":[]}
year_region_data[order_date_str]["sales"].append(order["sales"])
year_region_data[order_date_str]["quantity"] += order["quantity"]
year_region_data[order_date_str]["profit"] += order["profit"]
year_region_data[order_date_str]["region"].append(order["region"])
for year, year_region_data in year_region_data.items():
data['order_date'].append(year_region_data)
data['sales'].append(sum(year_region_data["sales"]))
data['quantity'].append(year_region_data["quantity"])
data['profit'].append(year_region_data["profit"])
data['region'].append(year_region_data["region"])
return JsonResponse(data)
```
注意,这里还将 sales 的值改为了一个空列表,因此在计算 sales 的总和时,需要使用 sum() 函数来计算。
'NoneType' object has no attribute 'strftime' data['order_date'].append(order['order_date'].strftime('%Y/%m/%d'))
这个错误通常表示您正在尝试对一个空值(NoneType)调用 strftime() 方法。请确保您的 order_date 变量是一个日期对象而不是 None。您可以添加一些调试语句来检查 order_date 的值,或者使用条件语句来检查 order_date 是否为空,以避免这个错误。例如:
if order['order_date']:
data['order_date'].append(order['order_date'].strftime('%Y/%m/%d'))
else:
data['order_date'].append('N/A')
阅读全文