从python对象进行JSON编码?

2024-10-01 22:37:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道有好几个问题和答案,但我不确定这些问题和答案是否对我有帮助。在

所以这是我的例子,我使用了sympy库和一些numpy函数。 我从node.js调用这些,并考虑一些web应用程序,因此我希望收到json格式的任何结果。在

我面临两个主要问题:

  1. 并非所有的交响乐作品都是普通的浮子,甚至是弦乐。在
  2. 在解决了JSON编码问题之后,是否可以生成JavaScript等价的浮点数来进行非常简单的管理?在

更详细地说,我现在正在处理一个泰勒和级数程序(已经编码),关于这行结果,对应于numpy函数:

puntosX = linspace(a,b,num=puntos).round(3)

我无法将其转换为JSON列表,puntosX的打印将输出:

^{pr2}$

还有

当我通过这行生成表达式数组时:

sumterms.append( (fx.diff(w,i)/factorial(i)) * (x)**i )

在这种情况下,同样的情况发生在萨姆特:

[x**3 - x - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

所以,在一个非常简单的黑盒方法中,这意味着,第一个列表中的所有元素都是浮点数,第二个列表中的所有元素都是字符串。我想任何类似lambda的线都会有帮助。在

但是,有什么方法可以告诉json或{}包吗?在


Tags: 方法函数答案numpynodejson元素编码
2条回答

我认为您可以使用Python内置的json包和dumps函数 当您只需将列表转换为JSON格式时,只需:

>>> puntosX
[-10.0, -7.778, -5.556, -3.333, -1.111, 1.111, 3.333, 5.556, 7.778, 10.0]
>>> import json
>>> json.dumps(puntosX)
'[-10.0, -7.778, -5.556, -3.333, -1.111, 1.111, 3.333, 5.556, 7.778, 10.0]'

您可以将其包装在“puntos”对象中,如下所示:

^{pr2}$

如果您希望puntos是字符串值的列表,我建议您这样做:

>>> json.dumps({'puntos': [str(p) for p in puntosX]})
'{"puntos": ["-10.0", "-7.778", "-5.556", "-3.333", "-1.111", "1.111", "3.333", "5.556", "7.778", "10.0"]}'

我希望这是你想做的。在

将numpy数组转换为list是可行的(如果有一个直接处理数组的json版本,它可能正在进行这种转换)。这里我使用的是一个二维数组示例。在

In [8]: x=np.linspace(0,1,10).reshape(2,5).round(3)

In [9]: x
Out[9]: 
array([[ 0.   ,  0.111,  0.222,  0.333,  0.444],
       [ 0.556,  0.667,  0.778,  0.889,  1.   ]])

In [10]: json.dumps(x.tolist())
Out[10]: '[[0.0, 0.111, 0.222, 0.333, 0.444], [0.556, 0.667, 0.778, 0.889, 1.0]]'

您希望从sympy传输什么类型的输出?如果将公式转换为字符串,json.dumps应该没有问题。在

相关问题 更多 >

    热门问题