所以我有3个脚本,为了简单起见,我们称之为a.py,b.py和c.py
现在a.py创建一个包含我要传递给b的数据的json,它使用这些数据创建另一个包含另一个相关数据子集的json 我想从c.py做这个动作。我怎样才能让b从a生成的json中读取,然后将b生成的json传递给c。我考虑过像这样导入
var PreDates = ["1","2"];
PreDates.adClass('active-select-color');
var selected = [];
id假设我将从b导入函数,但实际上我需要b中的所有函数,我只是从b导入所有函数并正常传递参数或者是否有其他方法来处理它?对于更多的背景,
c.py将创建一个目录,该目录将存储来自b.py的json。 我还需要在我的工作目录中使用 init .py来执行这些导入,它们都在同一目录中。
答案 0 :(得分:2)
(从评论到问题)
考虑以下文件:
#-- b.py ----------------------------------------------------------------------------------
def main():
name = input("Enter your name: ") # Python 3, use raw_input for Python 2
print("Your name is:", name)
#-- a.py ----------------------------------------------------------------------------------
import json
# Some method of generating a json
j = json.dumps({'name': 'Alice'})
并且您希望b.py的main
函数使用a.py中生成的json中的数据,而不是main
提示用户的数据。
换句话说,在上面的示例中,您希望程序打印Your name is: Alice
而不提示用户输入。
如果是这种情况,您可以将代码重构为:
#-- b.py ----------------------------------------------------------------------------------
def process(name):
print("Your name is:", name)
def get_user_input():
name = input("Enter your name: ") # Python 3, use raw_input for Python 2
process(name) # Prints: "Your name is: (whatever)"
#-- a.py ----------------------------------------------------------------------------------
import json
from b import process
# Some method of generating a json
j = json.dumps({'name': 'Alice'})
# (We created a json for no real reason, parse it back into a dict to access it)
d = json.loads(j)
# Call b.py's process function, and pass it the name in the json
process(d['name']) # Prints: "Your name is: Alice"
"技巧"这里是分开"工作" main
函数分为两个独立的函数。
process
)被赋予一个名称,"进程"它。在这个例子中,它只是打印出来。get_user_input
)获取用户的输入并将其传递给第一个函数。执行此操作后,您可以跳过用户输入(因为您不需要它,您希望使用JSON数据)并直接调用process
,甚至可以从其他文件调用。