小编Kos*_*bre的帖子

FastAPI/Pydantic 接受任意发布请求正文?

我想创建一个 FastAPI 端点,它只接受一个任意的 post 请求正文并返回它。

如果我发送{"foo" : "bar"},我想{"foo" : "bar"}回来。但我也希望能够发送{"foo1" : "bar1", "foo2" : "bar2"}并取回。

我试过:

from fastapi import FastAPI
app = FastAPI()

app.post("/")
async def handle(request: BaseModel):
    return request
Run Code Online (Sandbox Code Playgroud)

但是无论我发送什么,它都会返回一个空字典。

有任何想法吗?

python python-3.x starlette pydantic fastapi

8
推荐指数
2
解决办法
2636
查看次数

Numpy“Fortran”式的重塑?

假设我有一个这样X的形状数组(6, 2)

import numpy as np
X = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
Run Code Online (Sandbox Code Playgroud)

我想将它重塑为一个 shape 数组(3, 2, 2),所以我这样做了:

X.reshape(3, 2, 2)
Run Code Online (Sandbox Code Playgroud)

并得到:

array([[[ 1,  2],
        [ 3,  4]],

       [[ 5,  6],
        [ 7,  8]],

       [[ 9, 10],
        [11, 12]]])
Run Code Online (Sandbox Code Playgroud)

但是,我需要不同格式的数据。准确地说,我想结束:

array([[[ 1,  2],
        [ 7,  8]],

       [[ 3,  4],
        [ 9,  10]],

       [[ 5, 6],
        [11, 12]]])
Run Code Online (Sandbox Code Playgroud)

我应该用reshape这个还是别的什么?在 Numpy 中执行此操作的最佳方法是什么?

python arrays numpy python-3.x numpy-ndarray

5
推荐指数
2
解决办法
90
查看次数

C# Newtonsoft 使用声明反序列化自定义对象?

我有以下简单的 POCO:

  public class ApiKey
  {
    public ApiKey(string key, string owner, List<Claim> claims = null)
    {
      Key = key;
      OwnerName = owner;
      Claims = claims ?? new List<Claim>();
    }

    public string Key { get; }
    public string OwnerName { get; }
    public IReadOnlyCollection<Claim> Claims { get; set; }
  }
Run Code Online (Sandbox Code Playgroud)

我可以使用一个声明创建该对象的一个​​实例,并使用 Newtonsoft 对其进行序列化:

JsonConvert.SerializeObject(key)
Run Code Online (Sandbox Code Playgroud)

并获取一个序列化的 ApiKey,如下所示:

"{\"Key\":\"94a5b81f-9837-4c5f-9821-3ebaedc6435d\",\"OwnerName\":null,\"Claims\":[{\"Issuer\":\"LOCAL AUTHORITY\",\"OriginalIssuer\":\"LOCAL AUTHORITY\",\"Properties\":{},\"Subject\":null,\"Type\":\"AdminClaim\",\"Value\":\"AdminClaim\",\"ValueType\":\"http://www.w3.org/2001/XMLSchema#string\"}]}"
Run Code Online (Sandbox Code Playgroud)

但是,如果尝试使用 Newtonsoft 反序列化该字符串,如下所示:

JsonConvert.DeserializeObject<ApiKey>(serialized_key);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type System.Security.Claims.Claim. A class should either have a …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc .net-core asp.net-core

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

如何在 Ruby 中预先填充函数的参数?

假设我有一个函数 foo:

def foo(A, B, C)
 A + B + C
end
Run Code Online (Sandbox Code Playgroud)

我这样称呼它,只更改最后一个参数:

foo("foo", "bar", "123")
foo("foo", "bar", "456")
foo("foo", "bar", "789")
Run Code Online (Sandbox Code Playgroud)

我如何“烘焙”或“预填充”不改变的参数?所以也许我会得到一个新的可调用foo_baked对象,与?foo_baked("123")相同。foo("foo", "bar", "123")

并像这样使用它:

foo_baked = ...?
foo_baked("123")
foo_baked("456")
foo_baked("789")
Run Code Online (Sandbox Code Playgroud)

请注意,我不想使用定义一个新函数def,但希望能够在运行时动态创建 foo_baked,也许是一个数组。

ruby functional-programming ruby-on-rails function

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