python通过子进程管道发送json文件

时间:2017-02-01 07:49:02

标签: python json

我想通过管道发送json文件。所以基本上这就是我正在做的事情

module1.py - 这个脚本是我实际创建json文件的地方

import urllib, json, subprocess

def get_wip_info(query_str) :

    try :
        temp = urllib.urlopen(query_str).read()
    except :
        time.sleep(2)
        try :
            temp = urllib.urlopen(query_str).read()
        except :
            temp = "ERROR"
    return temp

def Get_Other_INFO() :

    fail_message = None

    serial_number = "xxxx"
    ret_str = get_wip_info("http://servername/TesterURL/api/serial/%s/" %serial_number)

    if "ERROR" not in ret_str :

        ret_json = json.loads(ret_str)

        return ret_json

A = Get_Other_INFO()
ret_json = A

cmd = "python module2.py %s"%dict(ret_json)
p = subprocess.Popen(cmd, shell = True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p.communicate()
result = p.stdout.read()

print result

所以基本上如果你看,这个脚本在另一个名为module2.py的脚本中调用一个函数。在这个脚本中,它只是解析json文件,如下所示:

def okok(ret_json) :

    part_number = str(ret_json.get("product", {}).get("SKU", "ERROR"))
    return part_number

def main():

    A = okok(sys.argv[1])
    print A

if __name__ == '__main__':
    main()

出于某种原因,我没有得到"部件号"打印。我有什么不对的吗?

我已确认属性product.get SKU不为空。请指教

0 个答案:

没有答案