【问题标题】:How do I pass an array of strings and ints from JS to Python 3.8?如何将字符串和整数数组从 JS 传递到 Python 3.8?
【发布时间】:2022-06-15 05:06:01
【问题描述】:

我已经查看了与此类似的其他问题,但它们并不适合我。

我的问题是我这里有这个代码:

function pyInput(){
    const buffers = [];

    proc.stdout.on('data', (chunk) => buffers.push(chunk));
    proc.stdout.on('end', () => {
        const result = JSON.parse(Buffer.concat(buffers));
        console.log('Python process exited, result:', result);
    });
    proc.stdin.write(JSON.stringify([['a','b',1],['b','c',-6],['c','a',4],['b','d',5],['d','a', -10]]));
    proc.stdin.end();


}

我试图将其传递给的 python 函数:

def createGraph(listOfAttr):


    for i in range(len(listOfAttr)):

        G.add_edge(listOfAttr[i][0], listOfAttr[i][1], weight = listOfAttr[i][2])

    
#createGraph([['a','b',1],['b','c',-6],['c','a',4],['b','d',5],['d','a', -10]])

my_list = json.load(sys.stdin)
json.dump(my_list,sys.stdout)

代码基本上是用于在图中查找负循环,我想从节点 js 加载该数据。但是我的 python 程序从未完成执行,它只是卡住了,我不知道为什么。现在我不会将 Node 中的列表传递给 py 函数,但我至少会尝试将它打印出来,看看它是否被传递给了 python。

【问题讨论】:

  • 如果你直接运行而不是通过 JS,你的程序是否可以工作?你有没有打印一些照片来看看它到哪里了?

标签: python node.js json python-3.x io


【解决方案1】:

sys.stdin 中的 json.load() 可能是问题所在。由于 sys.stdin 是一个管道,它在你告诉它之前永远不会真正关闭,所以它只是占用流,等待新数据。您可能可以使用input() 占用流一段时间,直到您收到某种输入字符串,告诉您到达终点,然后继续前进。确保同时更新您的 node.js 脚本,将每条数据作为行提供,以 \n 终止,并在完成后发送您指定的结束信号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 2021-08-13
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    相关资源
    最近更新 更多