小编Yar*_*ron的帖子

json用jq重新映射

我有以下json:

[
  {
    "ip": [
      "8.8.4.4/32",
      "212.40.11.20/32"
    ],
    "port": 25,
    "proto": "tcp"
  },
  {
    "ip": [
      "212.40.11.30/32"
    ],
    "port": 3389,
    "proto": "tcp"
  }
]
Run Code Online (Sandbox Code Playgroud)

使用jq我想分离ip数组中的IP地址,如下所示:

[
  {
    "ip": "8.8.4.4/32",
    "port": 25,
    "proto": "tcp"
  },
  {
    "ip": "212.40.11.20/32",
    "port": 25,
    "proto": "tcp"
  },
  {
    "ip": "212.40.11.30/32",
    "port": 3389,
    "proto": "tcp"
  }
]
Run Code Online (Sandbox Code Playgroud)

我使用jq 1.5Ubuntu 15.04bash 4.3.42(1).

编辑:
这是我从AWS生成此列表的方式:
aws ec2 describe-security-groups --group-id sg-2cf5e31 --query 'SecurityGroups[].IpPermissions[].{port:ToPort,proto:IpProtocol,ip:IpRanges[].CidrIp[]}' | jq '.[]'

下一步是添加自定义字段.

谢谢你的协助.

bash ubuntu json jq

3
推荐指数
1
解决办法
289
查看次数

使用PyMongo列出某些DB的用户

我正在努力实现的目标

我正在尝试为某个数据库获取用户.

到目前为止我做了什么

我能够找到列出数据库或创建用户的功能但没有列出用户的功能,我想要调用任意命令,show users但我可以找到任何方法来做到这一点.

目前的代码

#/usr/bin/python

from pymongo import MongoClient

client = MongoClient("localhost",27017)
db = client.this_mongo
Run Code Online (Sandbox Code Playgroud)

试错

我可以看到数据库名称并打印它们,但没有进一步:

db_names = client.database_names()

#users = db.command("show users")
for document in db_names:
    print(document)
#cursor = db.add_user('TestUser','Test123',roles={'role':'read'})
Run Code Online (Sandbox Code Playgroud)

如果只有一个函数可以获取用户光标,那么我可以迭代它就会很棒.

编辑

工作方案

#/usr/bin/python

from pymongo import MongoClient

client = MongoClient("localhost",27017)
db = client.this_mongo

# This is the line I added with the help of @salmanwahed
listing = db.command('usersInfo')

for document in listing['users']:
    print document['user'] +" "+ document['roles'][0]['role']
Run Code Online (Sandbox Code Playgroud)

谢谢大家和@salmanwahed!

python database mongodb pymongo

3
推荐指数
1
解决办法
2003
查看次数

标签 统计

bash ×1

database ×1

jq ×1

json ×1

mongodb ×1

pymongo ×1

python ×1

ubuntu ×1