小编VIB*_*YAL的帖子

“需要一个项目列表,但类型为“dict”。”

我正在尝试构建一个 api 来更新我的用户的名字和姓氏。我在 HTTP 响应中收到以下错误

{
    "non_field_errors": [
        "Expected a list of items but got type \"dict\"."
    ]
}
Run Code Online (Sandbox Code Playgroud)

我编写了以下 API 并尝试将补丁请求传递给它。

class UserSelfUpdateView(UpdateAPIView):
    serializer_class = UserUpdateSerializer
    permission_classes = [UserPermissions, ]

    def update(self, request: Request, *args, **kwargs):
        instance = User.objects.filter(id=self.request.user.id)
        serializer = UserUpdateSerializer(instance, data=request.data, many=True)
        serializer.is_valid(raise_exception=True)
        serializer.save()

        return Response({'success': True}, status=status.HTTP_200_OK)
Run Code Online (Sandbox Code Playgroud)

上述请求的序列化程序是:

class UserUpdateSerializer(serializers.ModelSerializer):

    class Meta:
        model = User
        fields: ('id', 'first_name', 'last_name')
Run Code Online (Sandbox Code Playgroud)

我试图传递我的请求正文的格式是:

{
    "first_name": "A",
    "last_name": "B"
}
Run Code Online (Sandbox Code Playgroud)

使用的原因

实例 = User.objects.filter(id=self.request.user.id)

是因为我想要的功能只有登录用户才能修改他的详细信息。

python django django-models django-views django-rest-framework

4
推荐指数
1
解决办法
2765
查看次数

根据熊猫中的条件获取列名

我有一个如下的数据框: 在此处输入图片说明

如果特定行的列在该列中包含 1,我想获取列的名称。

例如

For Row 1: Blanks,
For Row 2: Manufacturing,
For Row 3: Manufacturing,
For Row 4: Manufacturing,
For Row 5: Social, Finance, Analytics, Advertising,
Run Code Online (Sandbox Code Playgroud)

现在我只能得到完整的行:

primary_sectors = lambda primary_sector: sectors[
    sectors["category_list"] == primary_sector
]
Run Code Online (Sandbox Code Playgroud)

请帮我获取上述数据框中列的名称。

我试过这个代码:

primary_sectors("3D").filter(items=["0"])
Run Code Online (Sandbox Code Playgroud)

它给了我输出,1但我需要输出Manufacturing

python machine-learning python-3.x pandas

1
推荐指数
2
解决办法
7627
查看次数

如何在mysql中找到平均差异?

考虑一个存储员工详细信息的表员工。

ssn : social security number of the employee
address : storing the address of the employee
Run Code Online (Sandbox Code Playgroud)

查看员工表中的地址字段,您会注意到所有员工都居住在“Fondren, Houston, TX”。将地址字段中的整数视为门牌号。把两栋房子的距离看成是门牌号的差,所以2号到38号的距离是36个单位。编写一个查询来确定该ssn = '123456789'员工的房屋与其他员工的房屋之间的平均距离。将答案打印到小数点后两位。确保答案的格式为逗号,如 x,xxx.xx 。

有人可以帮我解决这个问题吗?

我不想使用 SQL 函数。

我所做的查询是:

SELECT 
    avg(
    abs(CAST(address AS UNSIGNED) - 
    SELECT CAST(address AS UNSIGNED) from test.test where ssn = 1234)
    ) as average from test.test;
Run Code Online (Sandbox Code Playgroud)

mysql sql

0
推荐指数
1
解决办法
1543
查看次数