相关疑难解决方法(0)

NumPy数组不是JSON可序列化的

创建NumPy数组并将其保存为Django上下文变量后,加载网页时收到以下错误:

array([   0,  239,  479,  717,  952, 1192, 1432, 1667], dtype=int64) is not JSON serializable
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

python django json numpy

196
推荐指数
7
解决办法
18万
查看次数

如何使用JSON模块进行漂亮打印时实现自定义缩进?

所以我使用的是Python 2.7,使用该json模块对以下数据结构进行编码:

'layer1': {
    'layer2': {
        'layer3_1': [ long_list_of_stuff ],
        'layer3_2': 'string'
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我使用漂亮的打印方式打印出来,如下所示:

json.dumps(data_structure, indent=2)
Run Code Online (Sandbox Code Playgroud)

哪个好,除了我要缩进所有内容,除了内容"layer3_1"- 这是一个列出坐标的大量字典,因此,在每个上面设置一个值使得漂亮的打印创建一个包含数千行的文件,示例如下:

{
  "layer1": {
    "layer2": {
      "layer3_1": [
        {
          "x": 1,
          "y": 7
        },
        {
          "x": 0,
          "y": 4
        },
        {
          "x": 5,
          "y": 3
        },
        {
          "x": 6,
          "y": 9
        }
      ],
      "layer3_2": "string"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我真正想要的是类似于以下内容:

{
  "layer1": {
    "layer2": {
      "layer3_1": [{"x":1,"y":7},{"x":0,"y":4},{"x":5,"y":3},{"x":6,"y":9}],
      "layer3_2": "string"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我听说可以扩展json模块:是否可以将其设置为仅在"layer3_1"对象内部时关闭缩进?如果是这样,有人请告诉我怎么样?

python json indentation

31
推荐指数
4
解决办法
2万
查看次数

是否有可能取消引用变量id?

你可以取消引用从idPython函数中检索的变量id 吗?例如:

dereference(id(a)) == a
Run Code Online (Sandbox Code Playgroud)

我想从学术角度来了解; 我知道有更实用的方法.

python memory dereference

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

如何设置JSONEncoder生成的浮点数?

我正在尝试设置python json库以保存为包含其他词典元素的字典.有许多浮点数,我想限制位数,例如7.

根据SO中的其他帖子,encoder.FLOAT_REPR如果它不起作用将被使用.

例如,以下在Python3.7.1中运行的代码打印所有数字:

import json
json.encoder.FLOAT_REPR = lambda o: format(o, '.7f' )
d = dict()
d['val'] = 5.78686876876089075543
d['name'] = 'kjbkjbkj'
f = open('test.json', 'w')
json.dump(d, f, indent=4)
f.close()
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

它可能无关紧要,但我在OSX上.

编辑

这个问题被标记为重复.然而,在原始的接受(并且直到现在唯一)答案中,明确说明:

注意:此解决方案不适用于python 3.6+

所以解决方案不合适.此外,它使用的是库simplejson 而不是json.

python floating-point json python-3.x

6
推荐指数
2
解决办法
554
查看次数