Search code examples
phppythonjsoninterprocess

php to python inter-process communication with large data by json


my php code:

<?php
$data = array('as', 'df', 'gh');
$result=shell_exec("start test.py ".escapeshellarg(json_encode($data)));
?>

test.py code:

import sys
import json
try:
    print json.loads(sys.argv[1])
except:
    print "ERROR"
print
raw_input()

it's failing to try and showing ERROR. while if change my python code to this:

import sys
try:
    data=sys.argv[1]
except:
    print "ERROR"
print data,
raw_input()

i'm getting the output as: [ as , df , gh ]

as i'm passing a json encoded data, i should be able to decode it with python's json.loads() method. but why it's not working?


Solution

  • don't know how it's working. but able to tune the program according to what i want.

    php code:

    <?php
    $data = array('1'=>"as",'2'=>"df",'3'=>"gh");
    $result=shell_exec("start test.py ".json_encode(json_encode($data)));
    ?>
    

    test.py:

    import sys
    import json
    
    try:
        data=sys.argv[1]
    except:
        print "ERROR"
    
    print data
    dit=json.loads(data)
    print dit
    print dit['1']
    raw_input()
    

    and got the output as required:

    {"1":"as","2":"df","3":"gh"}
    {u'1': u'as', u'3': u'gh', u'2': u'df'}
    as
    

    someone having a good knowledge in these pls explain.