Python:print json.dumps 在调用独立时不返回任何内容



我正在通过PHP执行python,以获得流体的一些物理属性。

在python代码的末尾,我希望将结果打印为json。

result = {
"Density": Density, 
"Vis": Viscosity,
"Cv": Cvcalc,
"Cp": Cpcalc,
"kTh":thermalConductivity
}
print json.dumps(result)

上面的代码不返回任何内容。 当我添加其他打印(最后一行(时,它起作用了。

result = {
...
}
print json.dumps(result)
print 's'

这就是结果。我可以删除该附加字符,但我想知道原因是什么。

__output:
'{
"Vis": 24.32561332022869, 
"Cp": 0.9243864539174277,
"kTh": 0.03403661793540763, 
"Cv": 0.8251806533784246, 
"Density": 6.489637890634001
}nsn'

编辑对我来说的问题是在 Bash 中执行绝对路径。 PHP代码如下所示,通过将其替换为相对路径,它被清除。所以,它与调用代码有关,是的!但是文件路径中的相对与绝对之间有什么有意义的区别吗?

shell_exec('python C:Python27index.py ' . $fluid . " " . $press . " " . $tempK);
shell_exec('python index.py' . $fluid . " " . $press . " " . $tempK);

如果你使用 python3 尝试:print(json.dumps(result), flush=True)

如果你使用 python2 尝试:

import sys sys.stdout.flush()

您可以参考: https://docs.python.org/2.7/library/functions.html#print

例如,使用 file.flush(( 来确保立即出现在屏幕上

最新更新