如何将许多 php 变量传递给 python

2023-12-20

我使用以下代码启动 python 脚本并向其传递 php 变量。

$tmp = exec("python path/to/pythonfile.py $myVariable $mySecondVariable", $output);

这工作得很好,我的问题是我需要将 100 多个变量传递给 python 脚本。我不希望这条执行线变得非常长且难以管理。我还探索了使用以下代码传递 php 数组而不是变量:

$checked = array(
"key1"     => "1"
"key2"     => "1"
"key3"     => "1"
);
$checkedJson = json_encode($checked);
$tmp = exec("python path/to/pythonfile.py $myVariable $checkedJson", $output);

这样我就无法在 python 端解码 JSON。我已经能够在 python 中对数组变量(未解码)进行基本打印,但它会将每个单独的字符作为新的数组值。即 [0] = k、[1] = e、[2] = y、[3] = 1 等... 任何帮助是极大的赞赏。

需要明确的是,我正在寻找一种比编码和解码数组更简单的方法。有没有办法可以格式化执行行以允许多个变量。


将 PHP 变量存储在临时文本文件中,然后使用 python 读取该文件。

简单有效。


假设脚本位于同一目录中

PHP部分

长版本(自包含脚本 - 如果您只需要代码片段,请跳到下面的短版本)

<?php

#Establish an array with all parameters you'd like to pass. 
#Either fill it manually or with a loop, ie:

#Loop below creates 100 dummy variables with this pattern.  
#You'd need to come up with a way yourself to fill a single array to pass
#$variable1 = '1';
#$variable2 = '2';
#$variable3 = '3';
#....
#$variableN = 'N';
#...    
for ($i=1; $i<=100; $i++) {
    ${'variable'.$i} = $i;
}

#Create/Open a file and prepare it for writing
$tempFile = "temp.dat";
$fh = fopen($tempFile, 'w') or die("can't open file");

#let's say N=100
for ($i=1; $i<=100; $i++) {

    #for custom keys 
    $keyname = 'Key'.$i;

    # using a variable variable here to grab $variable1 ... $variable2 ... $variableN     ... $variable100
    $phpVariablesToPass[$keyname] = ${'variable'.$i} + 1000;

}

#phpVariablesToPass looks like this:
# [Key1] => 1001 [Key2] => 1002 [Key3] => 1003  [KeyN] = > (1000+N)


#now write to the file for each value.  
#You could modify the fwrite string to whatever you'd like
foreach ($phpVariablesToPass as $key=>$value) {
    fwrite($fh, $value."\n");
}


#close the file
fclose($fh);

?>

或者简而言之,假设 $phpVariablesToPass 是一个充满您的值的数组:

#Create/Open a file and prepare it for writing
$tempFile = "temp.dat";
$fh = fopen($tempFile, 'w') or die("can't open file");
foreach ($phpVariablesToPass as $key=>$value) {
    fwrite($fh, $value."\n");
}
fclose($fh);

用于抓取数据的 Python 代码片段

lines = [line.strip() for line in open('temp.dat')]

变量lines现在包含所有 php 数据作为 python 列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将许多 php 变量传递给 python 的相关文章

  • Yii2 - 错误请求 (#400) |前端和后端cookie

    仅当我打开时才会出现此问题frontend and backend在相同的browser 设想 与后端交互 gt 切换选项卡 gt 与前端交互 gt 切换选项卡返回 gt 与后端交互 gt 错误请求 400 Cookie 后端 identi
  • AWS-PHP-SDK / SNS 直接寻址返回错误

    您好 我正在使用 Laravel 4 设置来利用 AWS SNS 向我的 iOS 设备发送推送消息 从 AWS 控制台向我的设备发布命令效果很好 然后我尝试从 PHP sns AWS get sns sns gt publish array
  • PHP - 如何获取主要 HTML 内容,例如 Firefox 中的阅读器模式

    在 android Firefox 应用程序和 safari iPad 中 我们只能通过 阅读器模式 阅读主要内容 阅读更多 http support mozilla org en US kb how enable reader mode
  • 如何使用 PHP 构建正确的 SOAP 请求

    我需要格式化 构建此 SOAP 服务 的请求 http api notificationmessaging com NMSOAP NotificationService wsdl http api notificationmessaging
  • Xdebug V3 不会停止 VSCode 中的断点

    我正在尝试使用 VSCode 在 XAMPP 上进行调试 但没有成功 我知道有很多关于这个的问题 我已经尽了一切努力 但仍然行不通 我的 xdebug 扩展确实有一件奇怪的事情 我目前使用 PHP v7 4 12 和 Xdebug 版本 3
  • 制作一个js数组,输入框的值用空格分隔

    我正在尝试使用文本框进行用户输入并将它们放入数组中 基本上 如果用户输入像这样的字符串 10 23 4566 234 10 我希望将数字放入 10 23 4566 234 10 等数组中 这可能吗 我只处理数字 字符串可能会很长 你会想要使
  • 如何在 PHP 的 HTML 页面中显示错误消息?

    我有以下登录表单 login php 其中要求输入用户名和密码
  • 如何在 JavaScript 中创建服务器端进度指示器?

    我想在我的网站中创建一个部分 用户可以在其中进行一些简单的操作update纽扣 这些中的每一个update按钮将发送到服务器 并在幕后进行长时间的处理 当服务器处理数据时 我希望用户有某种进度指示器 例如进度条或文本百分比 我使用 jQue
  • python SSLError("握手错误:SysCallError(-1,'意外的 EOF')",),))

    我正在抓取这个 aspx 网站https gra206 aca ntu edu tw Temp W2 aspx Type 2 https gra206 aca ntu edu tw Temp W2 aspx Type 2 根据需要 我必须解
  • $0 和 $1 在 Swift 闭包中意味着什么?

    let sortedNumbers numbers sort 0 gt 1 print sortedNumbers 谁能解释一下什么 0 and 1在斯威夫特中意味着什么 另一个样本 array forEach actions append
  • 为 Anaconda Python 安装 psycopg2

    我有 Anaconda Python 3 4 但是每当我运行旧代码时 我都会通过输入 source activate python2 切换到 Anaconda Python 2 7 我的问题是我为 Anaconda Python 3 4 安
  • Facebook PHP-SDK 页面刷新后似乎丢失了 userID

    我似乎登录工作正常 我可以登录 接受应用程序 第一次 然后显示用户信息 例如姓名 图片 等 然而 当我刷新页面时 userid 又回到 0 我必须再次登录 我不确定问题是什么 我必须在每次页面加载时重新启动它还是什么 我不知道 我会发布一些
  • Nginx 502 网关错误。通过增加buffer来解决。为什么?

    我正在设置 LEMP 堆栈来运行 Drupal 我安装了 Nginx 和 PHP FastCGI Nginx 工作正常 但任何运行 PHP 的尝试都会出现错误 502 Bad Gateway 谷歌很快发现 nginx 502 错误网关 ht
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • PHP 中的 -> 和 :: 有什么区别?

    这个东西困扰我好久了 一直找不到 在 php 中使用 和 gt 之间的类有什么区别 让我举个例子 想象一个名为 MyClass 的类 该类中有一个函数 myFunction 使用有什么区别 MyClass myclass new MyCla
  • PHP 表单 - 带验证蜜罐

    我有以下内容 效果很好 但对垃圾邮件机器人开放 我想放入蜜罐 而不是验证码 下面的代码适用于验证姓名 电子邮件 消息 但我无法让它与蜜罐一起工作 任何人都可以查看 蜜罐 代码并告诉我如何修复它吗 我希望表单给出 success2 不允许垃圾
  • PHP 拒绝从 var_dump、print 等输出数据

    我目前正在运行 WAMP 服务器 并且在过去的 30 分钟内一直在尝试弄清楚我的项目如何以及为什么不会输出任何指定的 PHP 数据 起初我以为是因为我有一个 htaccess文件的output buffering被禁用 所以我删除了它 仍然
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di

随机推荐

  • 向后读取文件(最后一行在前)

    文件看起来像这样 abcd efgh ijkl 我想使用读取文件C这样它首先读取最后一行 ijkl efgh abcd 我似乎找不到不使用的解决方案array用于存储 请帮忙 edit0 感谢所有的答案 只是为了让您知道 我是创建此文件的人
  • 如何使用SQL Server的OUTPUT子句进行更新

    DECLARE t2 AS TABLE id INT INSERT INTO dbo EntityMaster EntityType OUTPUT INSERTED EntityId INTO t2 SELECT G FROM tmp tm
  • 无法在 Winforms 中使用 C# 使用 datagridview 添加新行

    我想做一个简单的数据输入应用程序 所以我做了以下事情 创建了一个新的 Windows 窗体应用程序 添加了 DataGridView 添加了一个新的数据源 SQL Express 数据库 有一个包含 3 列的表 id name number
  • Mac/Safari 上的字体粗细变轻

    On my last website the text is perfect naturally on chrome and firefox without touching font smoothing or anything else
  • 使用音轨从线程更新用户界面

    我有一个应用程序 可以使用audiorecord 和audiotrack 来录制音频来播放 我在用户界面中有一个进度条 需要随着曲目的播放而增加 audiotrack api 表示读取和写入方法是阻塞的 这意味着用户界面被冻结直到写入完成
  • 在构建时生成 Nuget 包不包含所有依赖项

    我的解决方案的树如下所示 项目A 引用 Nuget 包 Some Package 项目B 参考文献 项目 A 构建时 项目 B 生成一个包 我们称之为PackageB 在 ProjectB csproj 中我使用了以下内容
  • nltk:如何防止专有名词的词干

    我正在尝试使用斯坦福词性标注器和 NER 编写一个关键字提取程序 对于关键字提取 我只对专有名词感兴趣 这是基本方法 通过删除字母以外的任何内容来清理数据 删除停用词 每个词的词干 确定每个单词的 POS 标签 如果 POS 标签是名词 则
  • Firebase Firestore 模拟器如何工作?

    到目前为止 我一直在使用 Firebase Hosting 和 Functions 模拟器 但现在我正在编写一个基于 Firestore 触发器运行的函数 因此我正在研究 Firestore 模拟器进行开发 但它是如何运作的呢 它完全模仿
  • 关于 std::abs 函数

    Is the std abs 为 C 11 中的所有算术类型明确定义的函数 并将返回 x 没有近似问题吗 奇怪的是 对于 g 4 7 std abs char std abs short int std abs int std abs lo
  • docker 镜像可以在不同的 Linux 风格之间移植吗?

    docker 镜像可以在不同的 Linux 风格之间移植吗 比方说 如果我有基于 OEL 的 docker 镜像并安装了数据库 我可以在 Mac 上的 boot2docker 中运行它吗 是的 您可以存档图像 docker save htt
  • Google Python 风格指南 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 为什么谷歌Python风格指南 https google github io styleguide pyguide html更喜欢列表推导式和
  • 相机捕获图像后 Phonegap 应用程序退出。 [安卓]

    我在使用 Phonegap 1 4 1 时遇到错误 我创建的phonegap应用程序在拍照后返回到应用程序后重新启动 这是我正在使用的代码 function capturePhoto Take picture using device ca
  • Mailitem.PrintOut() 转 PDF

    我想将完整的电子邮件打印为 pdf 格式 标准打印机选择为 microsoft Print to PDF 运行打印输出方法 出现一个保存窗口 我不知道如何以编程方式处理它 我仍然知道通过单词对象进行转换的方法 但这不起作用 因为屏幕截图不会
  • 如何将使用docker创建的MySQL连接到另一个端口(不是端口3306)?

    我已经在我的电脑上安装了 mySql 所以端口 3306 已经很忙 这就是为什么我必须使用 3306 以外的端口的原因 我希望能够在不使用 docker 命令的情况下将我的机器连接到我的 docekr 实例 这样我就能够使用我的应用程序 S
  • Hibernate 覆盖 @transient

    我有一个映射的超类 它有一个我的数据库中的一些表共享的字段 我希望用 Transient 注释这个字段 这样大多数实体都会忽略它 但在子实体上 de Transient 或 un Transient 这可能吗 谢谢你 伊多布 您也许可以使用
  • 用于特定运行配置的 IntelliJ 键盘快捷键

    我有一个 JUnit 运行配置来运行所有单元测试 如何将键盘快捷键绑定到 JUnit 配置的运行 现在有一个第三方插件 将配置作为操作运行 https plugins jetbrains com plugin 9448 run config
  • 通过http协议上传位图到服务器

    我有一个相机活动 之后我拍照并将其保存到图库并上传到服务器我的上传代码不起作用 我需要这方面的帮助吗 图像捕捉 Intent intent new Intent android media action IMAGE CAPTURE star
  • 在日期时间数据类型中插入 NOW() 值将返回 0000-00-00 00:00:00

    我有一个数据库 它有一个完美运行的 NOW 函数 显示正确的日期 并且在不小心删除了它之后 我创建了一个类似的数据库 但是当我插入 NOW 来插入时 current 当前日期 它将插入为 0000 00 00 00 00 00 显示的警告是
  • 如何从 n x 3 数据集绘制非凸曲面

    R中有没有直接绘制非凸曲面的方法 我对凸面使用了类似以下的东西 效果很好 xyz lt cbind y x z tbr lt t surf tri xyz delaunayn xyz rgl triangles xyz tbr 1 xyz
  • 如何将许多 php 变量传递给 python

    我使用以下代码启动 python 脚本并向其传递 php 变量 tmp exec python path to pythonfile py myVariable mySecondVariable output 这工作得很好 我的问题是我需要