我正在尝试将一段代码传递给REST服务器,该服务器包含在JSON对象中。示例代码如下所示
data = { 'code': textwrap.dedent("""\
val NUM_SAMPLES = 100000;
val count = sc.parallelize(1 to NUM_SAMPLES).map { i =>
val x = Math.random();
val y = Math.random();
if (x*x + y*y < 1) 1 else 0
}.reduce(_ + _);
println(\"Pi is roughly \" + 4.0 * count / NUM_SAMPLES)
""")
}
r = requests.post(statements_url, data=json.dumps(data), headers=headers)
但是我收到以下错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/site-packages/requests-2.8.1-py2.6.egg/requests/models.py", line 805, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/lib64/python2.6/json/__init__.py", line 307, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python2.6/json/decoder.py", line 319, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python2.6/json/decoder.py", line 338, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
我使用JSON验证器检查了JSON数据的有效性,并且存在错误
Error: Parse error on line 1:
data = { 'code': t
^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'
解决此问题的任何帮助?
答案 0 :(得分:0)
无法理解什么是错的。因为一切看起来都很好,下面的代码片段在python 2.7上运行良好:
HtmlHelper
如果可能的话,提供有关该错误的更多信息以及更多重新创建它的克莱尔步骤,那么我会更新答案。
答案 1 :(得分:0)
您正在尝试解码Python文件而不是其输出。 data =
不应该在JSON对象中。它只是创建输出的Python代码的一部分。这是您应该尝试验证的JSON对象:
请改为使用此代码:
from __future__ import print_function
import textwrap
import json
data = { 'code': textwrap.dedent("""\
val NUM_SAMPLES = 100000;
val count = sc.parallelize(1 to NUM_SAMPLES).map { i =>
val x = Math.random();
val y = Math.random();
if (x*x + y*y < 1) 1 else 0
}.reduce(_ + _);
println(\"Pi is roughly \" + 4.0 * count / NUM_SAMPLES)
""")
}
print(json.dumps(data))
将其另存为emil.py
并在命令行上使用python emil.py
运行它。您获得的结果是一个有效的JSON对象。