转储到JSON文件在类/函数中无法正常工作

时间:2017-11-23 05:04:04

标签: php python json

我正在尝试使用函数/类从python传输字典。我已经进行了简单的转移,有关它的更多信息herehere

到目前为止,我有以下功能代码,它只是将data字典从Python传输到PHP:

Python(基本脚本)

(必须先运行才能运行PHP)

import sys, json, random
data = {'form_type':'default'}
with open('data.json', 'w') as outfile:
    json.dump(data, outfile)

PHP(基本脚本)

<?php
$string = file_get_contents("data.json");
$json_a = json_decode($string, true);
echo $json_a['form_type'];
?>

Python(主脚本)

我已将其实现到我的主要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未接收任何输出。任何想法为什么这是回答这个问题所需的更多信息?

1 个答案:

答案 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