Json解析Python子进程

2023-12-29

这是代码:

inputDomain = subprocess.Popen("cat /etc/localdomains", shell=True,  stdout=subprocess.PIPE)
domains = inputDomain.stdout.read().splitlines()

for domain in domains:
   cmd = "whmapi1 domainuserdata domain " + domain
   output = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
   jsonS = json.dumps(output.communicate())
   print json.loads(jsonS)['data']

这里有错误

root@server [~/testP]# python copy.py 回溯(最近一次调用最后一次): 文件“copy.py”,第 18 行,位于 打印 json.loads(jsonS)['data'] 类型错误:列表索引必须是整数,而不是 str

这是我需要解析的 json 的示例:

{ 
   "data":{ 
      "userdata":{ 
      "phpopenbasedirprotect":1,
      "options":"ExecCGI Includes",
     "ip":"10.0.0.1",
     "hascgi":"1",
     "group":"user",
     "usecanonicalname":"Off",
     "scriptalias":[ 
        { 
           "url":"/cgi-bin/",
           "path":"/home/user/public_html/cgi-bin"
        },
        { 
           "url":"/cgi-bin/",
           "path":"/home/user/public_html/cgi-bin/"
        }
     ],
     "user":"user",
     "ifmodulemodsuphpc":{ 
        "group":"user"
     },
     "owner":"root",
     "documentroot":"/home/user/public_html",
     "userdirprotect":"",
     "serveralias":"parkeddomain.com www.parkeddomain.com www.example.com",
     "port":"80",
     "homedir":"/home/user",
     "ifmoduleconcurrentphpc":{ 

     },
     "customlog":[ 
        { 
           "target":"/usr/local/apache/domlogs/example.com",
           "format":"combined"
        },
        { 
           "target":"/usr/local/apache/domlogs/example.com-bytes_log",
           "format":"\"%{%s}t %I .\\n%{%s}t %O .\""
        }
     ],
     "servername":"example.com",
     "serveradmin":"[email protected] /cdn-cgi/l/email-protection"
  }
}

所以我需要用户和域名,但是python总是回答我需要一个int。谢谢你们的帮助。


我在Python3下运行上述内容时遇到问题,所以这是一种实现OP在Python3中要求的方法

import subprocess
import json


def getProcessOutput(cmd):
    process = subprocess.Popen(
        cmd,
        shell=True,
        stdout=subprocess.PIPE)
    process.wait()
    data, err = process.communicate()
    if process.returncode is 0:
        return data.decode('utf-8')
    else:
        print("Error:", err)
    return ""


for domain in getProcessOutput("cat /etc/localdomains").splitlines():
    cmd = "whmapi1 domainuserdata domain " + domain
    print(json.loads(getProcessOutput(cmd))['data'])

它输出Error: None因为我的机器没有/etc/localdomains但除此之外它似乎工作得很好。

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

Json解析Python子进程 的相关文章

  • OpenCV 错误:使用 COLOR_BGR2GRAY 函数时断言失败

    我在使用 opencv 时遇到了一个奇怪的问题 我在 jupyter 笔记本中工作时没有任何问题 但在尝试运行此 Sublime 时却出现问题 错误是 OpenCV错误 cvtColor中断言失败 深度 CV 8U 深度 CV 16U 深度
  • 为什么方法无法访问类变量?

    我试图理解Python中的变量作用域 除了我不明白为什么类变量不能从其方法访问的部分之外 大多数事情对我来说都很清楚 在下面的例子中mydef1 无法访问a 但如果a可以在全局范围 类定义之外 声明 class MyClass1 a 25
  • 远程控制或脚本打开 Office 从 Python 编辑 Word 文档

    我想 最好在 Windows 上 在特定文档上启动 Open Office 搜索固定字符串并将其替换为我的程序选择的另一个字符串 我该如何从外部 Python 程序中做到这一点 OLE 什么 原生 Python 脚本解决方案 The doc
  • 在python中调用subprocess.Popen时“系统找不到指定的文件”

    我正在尝试使用svnmerge py合并一些文件 它在底层使用 python 当我使用它时 我收到一个错误 系统找不到指定的文件 工作中的同事正在运行相同版本的svnmerge py 以及 python 2 5 2 特别是 r252 609
  • 一起使用 Argparse 和 Json

    我是 Python 初学者 我想知道 Argparse 和 JSON 是否可以一起使用 说 我有变量p q r 我可以将它们添加到 argparse 中 parser add argument p param1 help x variabl
  • 如何检查包含 NaN 的列表 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 在我的 for 循环中 我的代码生成一个如下所示的列表 list 0 0 0 0 sum 0 0 0 0 该循环生成所有其他数字向量 但它也
  • 如何解码 dtype=numpy.string_ 的 numpy 数组?

    我需要使用 Python 3 解码按以下方式编码的字符串 gt gt gt s numpy asarray numpy string hello nworld gt gt gt s array b hello nworld dtype S1
  • Pandas,按最大返回值进行分组 AssertionError:

    熊猫有问题 我想听听你的意见 我有这个数据框 我需要在其中获取最大值 代码就在下面 df stack pd DataFrame 1 0 2016 0 NonResidential Hotel 98101 0 DOWNTOWN 47 6122
  • 如何获取 Matplotlib 生成的散点图的像素坐标?

    我使用 Matplotlib 生成散点图的 PNG 文件 现在 对于每个散点图 除了 PNG 文件之外 我还会also就像生成散点图中各个点的像素坐标列表一样 我用来生成散点图 PNG 文件的代码基本上是这样的 from matplotli
  • 从 Apache 运行 python 脚本的最简单方法

    我花了很长时间试图弄清楚这一点 我基本上正在尝试开发一个网站 当用户单击特定按钮时 我必须在其中执行 python 脚本 在研究了 Stack Overflow 和 Google 之后 我需要配置 Apache 以便能够运行 CGI 脚本
  • PermanentTaskFailure:“模块”对象没有属性“迁移”

    我在 google appengine 上使用 Nick Johnson 的批量更新库 http blog notdot net 2010 03 Announcing a robust datastore bulk update utili
  • python 中的基本矩阵转置

    我尝试了 python 中矩阵转置的最基本方法 但是 我没有得到所需的结果 接下来是代码 A 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 print A def TS A B A for i in range len A
  • 使用 pandas 绘制带有误差线的条形图

    我正在尝试从 DataFrame 生成条形图 如下所示 Pre Post Measure1 0 4 1 9 这些值是我从其他地方计算出来的中值 我还有它们的方差和标准差 以及标准误差 我想将结果绘制为具有适当误差线的条形图 但指定多个误差值
  • python csv按列转换为字典

    是否可以将 csv 文件中的数据读取到字典中 使得列的第一行是键 同一列的其余行构成列表的值 例如 我有一个 csv 文件 strings numbers colors string1 1 blue string2 2 red string
  • 本地设置的 Cython 编译器指令是否影响一个或所有函数?

    我正在努力使用 Cython 加速一些 Python Numpy 代码 并且对 本地 设置 如定义的here http docs cython org en latest src reference compilation html在文档中
  • SpaCy 中的自定义句子边界检测

    我正在尝试在 spaCy 中编写一个自定义句子分段器 它将整个文档作为单个句子返回 我编写了一个自定义管道组件 它使用以下代码来执行此操作here https github com explosion spaCy issues 1850 但
  • Python“self”关键字[重复]

    这个问题在这里已经有答案了 我是 Python 新手 通常使用 C 最近几天开始使用它 在类中 是否需要在对该类的数据成员和方法的任何调用前添加前缀 因此 如果我在该类中调用方法或从该类获取值 我需要使用self method or sel
  • 如何使用 FastAPI 在 HTMX 前端中使用 HX-Redirect?

    我试图在登录后在前端重定向 我像这样从我的 htmx 前端发出请求
  • 如何将 Pandas Dataframe 中的字符串转换为字符列表或数组?

    我有一个名为的数据框data 其中一列包含字符串 我想从字符串中提取字符 因为我的目标是对它们进行一次性编码并使之可用于分类 包含字符串的列存储在预测因子如下 predictors pd DataFrame data columns Seq
  • 如何抑制 Pandas Future 警告?

    当我运行该程序时 Pandas 每次都会给出如下所示的 未来警告 D Python lib site packages pandas core frame py 3581 FutureWarning rename with inplace

随机推荐

  • 如何从 Maven 3.0 插件获取本地存储库位置?

    如何从 Maven 3 x 插件中获取本地存储库位置 URI 按照中所述使用以太这篇博文 http www sonatype com people 2011 01 how to use aether in maven plugins The
  • 代理后面的 git Push 远程问题

    为了设置上下文 我尝试使用toto https github com cloudhead toto建立我的博客 我做到了 sudo gem install toto 并且宝石安装正确 Successfully installed rdisc
  • Android ADB 连接空主机名

    我使用 ADB over WiFi 连接到 Android 设备 当我打字时 adb connect
  • java.lang.ClassNotFoundException:javax.ws.rs.client.RxInvokerProvider

    我尝试使用 loginServlet 从 jsp 页面登录 它重定向到 servlet 但不进行身份验证并引发错误 这是代码 JSP 文件 div class container div class row div class box di
  • Powershell:如何将结果添加到数组(ForEach-Object -Parallel)

    我知道 用参数 using foo我可以在运行时使用来自不同运行空间的变量ForEach Object Parallel在 Powershell 7 及更高版本中 但是如何将结果添加回变量呢 常用参数 and using 不管用 例如 Al
  • 如何向 pandas 数据框添加额外的行[重复]

    这个问题在这里已经有答案了 如果我有一个空数据框 columns Date Name Action ID df pd DataFrame columns columns 有没有办法向这个新创建的数据框追加新行 目前我必须创建一个字典 填充它
  • 我可以从网格生成点云吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试从网格生成点云数据 例如 Maya 的 obj 文件 但是 我只能在互联网上找到相反的情况
  • 我如何给此列表中的每个人加薪

    需要使用 for each 循环 每个人获得的加薪是 1000 会是这样吗 int raise 1000 for Person i people people add raise i 我正在处理这个 public ArrayList
  • C 中的多字节整数变量[重复]

    这个问题在这里已经有答案了 我想知道如何计算单引号中字符串的整数值 我的示例代码是 include
  • 在Python中,导入类与导入类的模块有什么优缺点?

    我正在为大约 30 名开发人员组成的团队编写一套 Python 编码指南 作为我的文档的基础 到目前为止我已经研究了谷歌Python风格指南 http google styleguide googlecode com和PEP 8 风格指南
  • 我可以将对象保存到 app.config 文件中吗?

    我需要为我的应用程序使用一个配置文件 它将保存每个实体的详细信息列表 例如
  • 检查php会话是否不存在

    我有以下 php 代码 哪个应该检查会话是否不存在 如果不存在 则用户重定向 问题是这个条件始终为真 即使会话确实存在 我的问题是如何修复它 尝试用 SESSION like
  • 隐藏 UITableView 搜索栏

    我有一个 UITableViewController 它以标准方式设置了 UISearchDisplayController 搜索栏位于 tableView 内 我希望搜索栏一开始是隐藏的 真正隐藏 而不仅仅是滚动消失就像在这个解决方案中一
  • 在 Haskell 中过滤斐波那契数列

    我正在尝试过滤包含斐波那契数字的列表 我需要的只是奇数 并且小于或等于N 这是我到目前为止所拥有的 fib n n 0 0 n 1 1 otherwise fib n 1 fib n 2 fibs n a a lt fib x x lt 1
  • NodeJS“readline”模块不输出提示

    使用 NodeJS 我试图制作一个 笔记 管理器只是为了好玩 但是当我尝试使用 readline question 来获取用户关于他们想要做什么的输入 即创建一个新笔记 删除一个笔记 则不会显示提示 关于如何解决这个问题有什么建议吗 项目链
  • 在堆栈上分配大于页面大小的缓冲区会损坏内存吗?

    在Windows中 堆栈的实现方式如下 指定的页面后面是提交的堆栈页面 它的保护标志受到保护 因此 当 thead 引用受保护页面上的地址时 会出现内存错误 这使得内存管理器将受保护页面提交到堆栈并清除该页面的受保护标志 然后保留一个新页面
  • Flask-restful 在同一个类中具有 get/ 和 post 与 json

    如果 api add resource User user 则用户的 get 方法有效 该行未注释 另一个 api add resource 是 反之亦然 使 post 方法起作用 我怎样才能让这两条路径都起作用 from flask im
  • 处理命令行参数时清理控制流 [C#]

    我正在处理一个基于命令行参数执行大量 if else 分支的程序 这是 C 语言 但我确信它也适用于 Java C 等 以下是总体概述 if args Length 0 do something if args Length gt 0 ar
  • 无法远程访问9200端口

    刚刚开始使用elasticsearch 5 4 0 首先我将其安装在Mac 本地 上 然后安装在服务器上 在 Mac 中 当我在浏览器中运行 http 本地主机 9200 http localhost 9200 它向我显示输出 name N
  • Json解析Python子进程

    这是代码 inputDomain subprocess Popen cat etc localdomains shell True stdout subprocess PIPE domains inputDomain stdout read