【发布时间】:2018-06-07 13:33:03
【问题描述】:
假设我有两个 Python 模块,first.py 和 second.py。 first.py 生成一个 JSON 字符串; second.py 接受一个 JSON 字符串并执行后续处理。为了简化它们,请考虑下面编写的示例:
# first.py
import json
fruit = input("Name a fruit: ")
material_str = json.dumps({"fruit": fruit})
print(material_str)
# second.py
import json
material = json.loads(material_str)
def blender(material):
serving = material["fruit"] + " juice"
return serving
print(blender(material))
现在我的问题是:如何将material_str 从first.py 转移到second.py?有没有办法让material_str 以某种方式缓存在内存中,然后由second.py (或者更一般地说,由可以加载JSON 字符串的其他语言的程序)获取?因为printed 字符串似乎不太可能像这样传输。
我知道我可以将json.dump 字典放入first.py 中的文件,并将json.load 放入second.py 中。但是,这些代码每天会执行数千次,并且 JSON 字符串仅在执行期间有用,所以我不想保存它们。将first.py 和second.py 结合起来也不可行,因为实际上它们是不同人开发的两个大项目。事实上,将first.py 视为执行OCR 的脚本,将second.py 视为一个iOS 应用程序的脚本。现在需要将 OCR 的结果传输到应用脚本中,以便呈现。
我已经阅读了一些关于 sys.stdout 的文档,但看起来没有运气。任何帮助表示赞赏。
【问题讨论】:
-
我猜你说的是在两个不同的进程之间共享内存资源?否则这个问题没有多大意义(你可以共享一个全局变量,将它发送到一个函数或许多其他方法..)。
-
他们应该如何被“转移”?第一个脚本在哪里运行,第二个脚本在哪里运行?
-
还有iOS app和linux服务器上的进程如何通信???
-
如果您不知道您的流程应该如何通信,那么您根本无法回答。
-
在确定系统将通信的内容之前,您需要先确定系统将如何通信