python - 多维数组模型 Django

标签 python django rest django-rest-framework

TLDR:尝试使用 django rest 发送 2d 数组但失败了,为什么?

这就是我的情况。我正在创建一个摄取工具来接收由其他人创建的数据。该数据的一部分是二维数组或列表列表,无论您喜欢什么。在这种情况下,类似的东西是 float 列表的列表 数据 = [[1,2,3,4,5,6],[1,2,3,4,5,6]] 我正在尝试使用 Django 休息服务来执行此操作,因为这就是我所做的其他所有事情所使用的服务。无论如何,这个数据类型以 json 格式与其他数据类型一起提供给我,我也会展示这些数据类型。在模型方面,我有一个主要 dataType 的模型,data 将进入该模型,如下所示

class dataType(models.Model):
  data = ArrayField(ArrayField(models.FloatField(blank=True, null=True),
                              null=True), null=True)  
  data1 = ArrayField(models.FloatField(blank=True, null=True),
                               null=True)
  ...
  other data

现在 data 是我遇到问题的数据。 data1 只要它只是单维数组(列表)就可以正常工作。当我用这个运行代码时,我收到一条错误消息 Expected a list of items but getting type\\"str\\"."]}' 即使我向它发送了一个列表。由于这个不同的原因,得到 400。这是 json 代码的样子。

"dataType": [
  {
    "otherData": stuff                                
    "data": [
      [1, 2, 3, 4, 5, 6],
      [1, 2, 3, 4, 5, 6],
      [1, 2, 3, 4, 5, 6],
      [1, 2, 3, 4, 5, 6],
      [1, 2, 3, 4, 5, 6],
      [1, 2, 3, 4, 5, 6]
    ]
  }
]

就像在任何人询问之前一样,不,我无法更改二维数组中的数据,它必须保持这样,如果由我决定,我会更改它。

另一个旁注,我尝试仅使用一个数组字段,例如 data1 与二维数组内容,它返回 201 但当我转到 localhost:8000/api/v3 时在其余部分/dataType 它给了我一个 500 错误并提示并说了一些类似寻找字符串或 float 但收到列表的内容。

更新:关于最后一个附注,我发现这确实有效,但它将我的二维数组转换为一个巨大的单个数组,所以这仍然不是我想要的,我需要我的二维数组保持为二维数组。

最佳答案

这是一件非常愚蠢的事情。我有多个摄取器都使用此代码,但似乎多维数组将其抛出一个循环。解决我的问题的是请求调用。我最初拥有的是这样的:

response = requests.post(data_endpoint, data=temp, verify=False)

temp 是 json 格式的数据。解决我的问题的方法是专门对其进行转储并选择媒体类型。

headers = {'Content-type': 'application/json'}
response = requests.post(data_endpoint, data=json.dumps(temp), verify=False, headers=headers)

我再次不确定为什么多维数组会迫使我在这种情况下动手,但这就是解决我的问题的原因

关于python - 多维数组模型 Django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49880159/

相关文章:

检查大量列表的长度是否相同的 Pythonic 方法

python - 如何使用 pandas/python 从日期和字符串的列组合中删除时间戳?

python - MacOS Sierra 后 Django 测试速度变慢

json - 如何急切加载单个 Eloquent 对象的关系?

python - 将 dtype 从 int64 转换为 int32

python - 用它包装的函数保存一个 sklearn `FunctionTransformer`

Python/Django - 我可以创建多个类似 pdf 文件的对象,将它们压缩并作为附件发送吗?

python - Django 聚合和以下外键关系

rest - 是否仍然有 HTTP 301 而不是 HTTP 308 的用例来指示资源已移动(特别是在 ReST 服务器中)?

c# - REST WCF - 流下载非常慢,65535 (64KB) block 无法更改