我正在尝试使用函数/类从python传输字典。我已经进行了简单的转移,有关它的更多信息here和here。
到目前为止,我有以下功能代码,它只是将data
字典从Python传输到PHP:
(必须先运行才能运行PHP)
import sys, json, random
data = {'form_type':'default'}
with open('data.json', 'w') as outfile:
json.dump(data, outfile)
<?php
$string = file_get_contents("data.json");
$json_a = json_decode($string, true);
echo $json_a['form_type'];
?>
我已将其实现到我的主要PHP页面中,该页面可以与简单的Python脚本一起使用。 但是,带有大量无关代码的高级python脚本无法运行。这些是该代码的第一行行:
import dill
import random
import sys
import os
import json
restart = 'yes'
user_action = 'inventory'
pickle = 'rpg.pickle'
restart = sys.argv[1]
user_action = sys.argv[2]
pickle = sys.argv[3] + ".pickle"
if restart == "no" and os.path.isfile(pickle) == False:
restart = "yes"
data = {'form_type':'potato'}
with open('data.json', 'w') as outfile:
json.dump(data, outfile)
# Lots of more code afterward
此代码在PHP运行时完全崩溃,并且未编辑JSON文件且PHP未接收任何输出。任何想法为什么这是回答这个问题所需的更多信息?
答案 0 :(得分:1)
您的代码的主要问题是您的python脚本中的JSON读取行。
它在读取块内没有正确缩进。
由于第一个程序只是一个片段,因此没有破坏程序。
但是对于原始程序,由于缩进问题,您将收到一个巨大的错误。
更正后的脚本如下。
Python(基本脚本)
import sys, json, random
data = {'form_type':'default'}
with open('data.json', 'w') as outfile:
json.dump(data, outfile)
Python(主脚本)
import dill
import random
import sys
import os
import json
restart = 'yes'
user_action = 'inventory'
pickle = 'rpg.pickle'
restart = sys.argv[1]
user_action = sys.argv[2]
pickle = sys.argv[3] + ".pickle"
if restart == "no" and os.path.isfile(pickle) == False:
restart = "yes"
data = {'form_type':'potato'}
with open('data.json', 'w') as outfile:
json.dump(data, outfile)
# Lots of more code afterward