页面“Zabbix 调用API 批量添加主机”与“Python decode()方法”之间的差异

来自linux中国网wiki
(页面间的差异)
跳到导航 跳到搜索
 
 
第1行: 第1行:
[[category:ops]]  [[category:zabbix]]
 
=pre=
 
  
已有 salt [[Salt yum安装]]
+
Python decode()方法以 encoding 指定的编码格式解码字符串。默认编码为字符串编码
  
可以见 批量添加 salt  Salt-ssh批量自动安装被控端minion
+
encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。
  
=批量添加zabbix agent=
+
例子
==直接用cmd.run==
 
  salt 'prod-mq03' cmd.run 'yum install  -y zabbix-agent' #systemctl  restart zabbix-agent  systemctl  enable zabbix-agent
 
 
 
==zabbix state.sls ==
 
有空要试一下
 
 
 
 
 
 
 
 
 
 
 
[https://www.cnblogs.com/LYCong/p/7879805.html salt 使用state文件来配置zabbix客户端文件]
 
 
 
[https://blog.csdn.net/u011075143/article/details/78615691 salt 使用state文件来配置zabbix客户端文件]
 
 
 
[https://www.cnblogs.com/Jackie-Chen/articles/10795003.html SaltStack批量安装zabbix-agent(yum安装)]
 
 
 
[https://www.cnblogs.com/xiewenming/p/7713660.html SaltStack安装zabbix-agent-第九篇]
 
 
 
[https://www.cnblogs.com/python-study/p/5504501.html SaltStack 使用pillar安装配置管理zabbix]
 
 
 
[https://blog.csdn.net/reblue520/article/details/76286843 saltstack自动化运维系列⑦SaltStack实践配置管理安装zabbix]
 
 
 
[https://www.cnblogs.com/LYCong/p/7879805.html salt 使用state文件来源码安装和配置zabbix客户端文件]
 
 
 
=批量修改zabbix agent配置=
 
<pre>
 
Server=148.66.11.55
 
ServerActive=148.66.11.55
 
Hostname=prod-sns-mq01
 
 
 
 
 
 
 
sed -i '/^Hostname/ s/.*/Hostname=zabbix_hk/' /etc/zabbix/zabbix_agentd.conf
 
 
 
#zbx hostname
 
salt 'prod-mq03' cmd.run 'hostname'
 
prod-mq03:
 
    prod-mq03
 
 
 
 
 
#这里可以取出 hostname 作变量 和作循环
 
Server=148.66.01.05
 
ServerActive=148.66.01.05
 
 
 
myhost=`salt 'prod-mq03' cmd.run 'hostname' |sed -n '2p' |awk '{print $1}'`
 
salt 'prod-sns-mq02' cmd.run "sed -i '/^Hostname/ s/.*/Hostname=$myhost/'  /etc/zabbix/zabbix_agentd.conf"
 
 
 
#这个替换太多了 不太好写匹配  要如下添加 =  or  直接 inser 就是了
 
salt 'prod-mq03' cmd.run "sed -i '/^Server=/ s/.*/Server=$Server/'  /etc/zabbix/zabbix_agentd.conf"
 
salt 'prod-mq03' cmd.run "sed -i '/^ServerActive=/ s/.*/ServerActive=$ServerActive/'  /etc/zabbix/zabbix_agentd.conf"
 
 
 
 
 
注意  ""  结果不太对的
 
salt 'prod-sns-mq02' cmd.run "hostname |sed -n '2p' |awk '{print $1}'"
 
prod-sns-mq02:
 
 
 
</pre>
 
=利用api批量添加主机 =
 
zbx_server version 4.0
 
 
 
== get token  获得自己的token ==
 
===py2===
 
<pre>
 
cat api.py
 
# -*- coding:utf-8 -*-
 
#py2
 
import urllib2
 
import json
 
#u zbx server ip or domain
 
url = 'http://myzabbix.com/api_jsonrpc.php'
 
header = {'Content-Type': 'application/json'}
 
 
 
req = json.dumps(
 
    {
 
        "jsonrpc": "2.0",
 
        "method": "user.login",
 
        "params": {
 
            "user": "Admin",
 
            "password": "123456"
 
        },
 
        "id": 0,
 
    }
 
)
 
 
 
def auth():
 
    r = urllib2.Request(url=url, headers=header, data=req)
 
    response = urllib2.urlopen(r)
 
    token = json.loads(response.read())
 
    print(token)
 
 
 
if __name__ == '__main__':
 
 
 
    auth()
 
 
 
#token
 
{u'jsonrpc': u'2.0', u'result': u'1794bcbe6d818069bff5aa499a07a960', u'id': 0}
 
 
 
</pre>
 
 
 
===py3===
 
<pre>
 
#!/usr/bin/env python
 
# Version = 3.5.2
 
# __auth__ = ''
 
import json
 
from urllib import request, parse
 
 
ZABBIX_URL = 'http://z.cn'
 
ZABBIX_USERNAME = "Admin"
 
ZABBIX_PASSWORD = "zabbix"
 
 
url = "{}/api_jsonrpc.php".format(ZABBIX_URL)
 
header = {"Content-Type": "application/json"}
 
# auth user and password
 
data = {
 
    "jsonrpc": "2.0",
 
    "method": "user.login",
 
    "params": {
 
        "user": ZABBIX_USERNAME,
 
        "password": ZABBIX_PASSWORD
 
    },
 
    "id": 1,
 
}
 
# 由于API接收的是json字符串,故需要转化一下
 
value = json.dumps(data).encode('utf-8')
 
 
# 对请求进行包装
 
req = request.Request(url, headers=header, data=value)
 
 
# 验证并获取Auth ID
 
try:
 
    # 打开包装过的url
 
    result = request.urlopen(req)
 
except Exception as e:
 
    print("Auth Failed, Please Check Your Name And Password:", e)
 
else:
 
    response = result.read()
 
    # 上面获取的是bytes类型数据,故需要decode转化成字符串
 
    page = response.decode('utf-8')
 
    # 将此json字符串转化为python字典
 
    page = json.loads(page)
 
    result.close()
 
    print("Auth Successful. The Auth ID Is: {}".format(page.get('result')))
 
 
 
 
 
python3  tmp/zapi3.py
 
Auth Successful. The Auth ID Is: cef1be0881b355e801678036cdc8c685
 
 
 
</pre>
 
 
 
[https://blog.51cto.com/freshair/2132748 Python调用Zabbix api之从入门到放弃——登录并获取身份验证令牌]
 
 
 
[https://www.jianshu.com/p/7a014f316e35 zabbix api token获取]
 
 
 
== 我们获取必要的相关信息 ,eg所有主机list信息==
 
===获得 groupid ===
 
<pre>
 
cat getgroupid.sh
 
#获取指定groupid
 
curl -s -X POST -H 'Content-Type:application/json' -d '
 
{
 
    "jsonrpc": "2.0",
 
    "method": "hostgroup.get",
 
    "params": {
 
        "output": "extend",
 
        "filter": {
 
            "name": [
 
                "Zabbix servers",
 
                "Linux servers",
 
                "sns servers"
 
            ]
 
        }
 
    },                                       
 
    "auth": "1794bcbe6d818069bff5aa423a07a960",
 
    "id": 1
 
}'  http://myzabbix.com//api_jsonrpc.php | python3 -m json.tool
 
 
 
#这里的id一定是1
 
</pre>
 
[https://www.cnblogs.com/zdoubly/p/9777122.html zabbix--api学习之路--get_hostgroup获取]
 
 
 
https://www.zabbix.com/documentation/4.0/zh/manual/api/reference/hostgroup/get
 
 
 
=== templateid===
 
<pre>
 
#!/bin/bash
 
#跑在我的freebsd12
 
#获取指定groupid
 
curl -s -X POST -H 'Content-Type:application/json' -d '
 
{
 
    "jsonrpc": "2.0",
 
    "method": "hostgroup.get",
 
    "params": {
 
        "output": "extend",
 
        "filter": {
 
            "name": [
 
                "Zabbix servers",
 
                "Linux servers"
 
            ]
 
        }
 
    },                                       
 
    "auth": "1794bcbe6d818069bff5aa423a07a960",
 
    "id": 1
 
}'  http://148.66.11.55/zabbix/api_jsonrpc.php | python3 -m json.tool
 
 
 
 
 
#output
 
"result": [
 
        {
 
            "groupid": "2",
 
            "name": "Linux servers",
 
            "internal": "0",
 
            "flags": "0"
 
        },
 
        {
 
            "groupid": "4",
 
            "name": "Zabbix servers",
 
 
 
</pre>
 
 
 
=== hostadd===
 
 
 
https://www.zabbix.com/documentation/4.0/manual/api/reference/host/create
 
<pre>
 
批量添加版  用法  分别添加 ip and hostname
 
 
 
 
 
#!/bin/bash
 
#注释中文导致不成功
 
#"host": "'prod-sns-mq02'",    #这里一般改为你要的hostname
 
IP=(
 
40.243.52
 
41.102.111
 
40.218.197
 
40.216.19
 
)
 
HOSTNAME=(
 
prod-sns-php01
 
prod-sns-php02
 
prod-sns-mq01
 
prod-sns-mq03
 
)
 
 
 
myend=`expr ${#IP[@]} - 1`
 
 
 
for  no in `seq 0 ${myend}`
 
#for  no in `seq 2 3` #这个是手工决定 数量
 
do
 
 
 
curl -s -X POST -H 'Content-Type:application/json' -d '
 
{
 
    "jsonrpc": "2.0",
 
    "method": "host.create",
 
    "params": {
 
        "host": "'${HOSTNAME[$no]}'", 
 
 
 
        "interfaces": [
 
            {
 
                "type": 1,
 
                "main": 1,
 
                "useip": 1,
 
                "ip": "'${IP[$no]}'",
 
                "dns": "",
 
                "port": "10050"
 
            }
 
        ],
 
        "groups": [
 
            {
 
                "groupid": "2",
 
                "groupid": "16"
 
            }
 
        ],
 
        "templates": [
 
            {
 
                "templateid": "10001"
 
            }
 
        ]
 
      },
 
    "auth": "1794bcbe6d818069bff5aa4207a960",
 
    "id": 1
 
}' http://zbx.com/zabbix/api_jsonrpc.php | python -m json.tool
 
 
done
 
 
 
#要添加多一个群组
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#!/bin/bash
 
#注释中文导致不成功
 
#"host": "'prod-sns-mq02'",    #这里一般改为你要的hostname
 
IP="
 
121.41.103.113
 
 
for node_ip in ${IP};
 
do
 
curl -s -X POST -H 'Content-Type:application/json' -d '
 
{
 
    "jsonrpc": "2.0",
 
    "method": "host.create",
 
    "params": {
 
        "host": "'prod-sns-es01'", 
 
 
 
        "interfaces": [
 
            {
 
                "type": 1,
 
                "main": 1,
 
                "useip": 1,
 
                "ip": "'${node_ip}'",
 
                "dns": "",
 
                "port": "10050"
 
            }
 
        ],
 
        "groups": [
 
            {
 
                "groupid": "2",
 
                "groupid": "16"
 
            }
 
        ],
 
        "templates": [
 
            {
 
                "templateid": "10001"
 
            }
 
        ]
 
      },
 
    "auth": "1794bcbe6d818069bff5aa423a07a960",
 
    "id": 1
 
}' http://148.66.11.55/zabbix/api_jsonrpc.php | python -m json.tool
 
done
 
 
 
#要添加多一个群组
 
 
 
</pre>
 
=== 别人例子===
 
 
<pre>
 
<pre>
获取 KEY
+
In [38]: dic["温度"] = items[0][3]
 
 
!/usr/bin/env python2.7
 
#coding=utf-8
 
import json
 
import urllib2
 
# based url and required header
 
url = "http://monitor.example.com/api_jsonrpc.php"
 
header = {"Content-Type": "application/json"}
 
# auth user and password
 
data = json.dumps(
 
{
 
    "jsonrpc": "2.0",
 
    "method": "user.login",
 
    "params": {
 
    "user": "Admin",
 
    "password": "zabbix"
 
},
 
"id": 0
 
})
 
# create request object
 
request = urllib2.Request(url,data)
 
for key in header:
 
    request.add_header(key,header[key])
 
# auth and get authid
 
try:
 
    result = urllib2.urlopen(request)
 
except URLError as e:
 
    print "Auth Failed, Please Check Your Name And Password:",e.code
 
else:
 
    response = json.loads(result.read())
 
    result.close()
 
    print "Auth Successful. The Auth ID Is:",response['result']
 
 
 
获取 hostlist 所有主机列表
 
 
 
#!/usr/bin/env python2.7
 
#coding=utf-8
 
import json
 
import urllib2
 
#xiaorui.cc
 
url = "http://10.10.10.61/api_jsonrpc.php"
 
header = {"Content-Type": "application/json"}
 
# request json
 
data = json.dumps(
 
{
 
    "jsonrpc":"2.0",
 
    "method":"host.get",
 
    "params":{
 
        "output":["hostid","name"],
 
        "filter":{"host":""}
 
    },
 
    "auth":"dbcd2bd8abc0f0320fffab34c6d749d3",
 
    "id":1,
 
})
 
# create request object
 
request = urllib2.Request(url,data)
 
for key in header:
 
    request.add_header(key,header[key])
 
# get host list
 
try:
 
    result = urllib2.urlopen(request)
 
except URLError as e:
 
    if hasattr(e, 'reason'):
 
        print 'We failed to reach a server.'
 
        print 'Reason: ', e.reason
 
    elif hasattr(e, 'code'):
 
        print 'The server could not fulfill the request.'
 
        print 'Error code: ', e.code
 
else:
 
    response = json.loads(result.read())
 
    result.close()
 
    print "Number Of Hosts: ", len(response['result'])
 
    for host in response['result']:
 
        print "Host ID:",host['hostid'],"Host Name:",host['name']
 
 
 
 
 
eg
 
Number Of Hosts:  2
 
Host ID: 10084 Host Name: Zabbix server
 
Host ID: 10413 Host Name: xps
 
添加主机
 
  
#!/usr/bin/env python2.7
+
In [39]: dic["温度"]
#coding=utf-8
+
Out[39]: '17 ~ 27\xe2\x84\x83'
import json
 
import urllib2
 
#xiaorui.cc
 
url = "http://10.10.10.61/api_jsonrpc.php"
 
header = {"Content-Type": "application/json"}
 
# request json
 
data = json.dumps(
 
{
 
    "jsonrpc":"2.0",
 
    "method":"host.create",
 
    "params":{
 
        "host": "10.10.10.67","interfaces":
 
        [{"type": 1,"main": 1,"useip": 1,"ip": "10.10.10.67","dns": "","port": "10050"}],
 
        "groups": [{"groupid": "2"}],"templates": [{"templateid": "10087"}]
 
        },
 
    "auth":"dbcd2bd8abc0f0320fffab34c6d749d3",
 
    "id":1,
 
}
 
)
 
# create request object
 
request = urllib2.Request(url,data)
 
for key in header:
 
    request.add_header(key,header[key])
 
# get host list
 
try:
 
    result = urllib2.urlopen(request)
 
except URLError as e:
 
    if hasattr(e, 'reason'):
 
        print 'We failed to reach a server.'
 
        print 'Reason: ', e.reason
 
    elif hasattr(e, 'code'):
 
        print 'The server could not fulfill the request.'
 
        print 'Error code: ', e.code
 
else:
 
    response = json.loads(result.read())
 
    result.close()
 
    print 'ok'zai
 
  
 +
In [42]: print (dic["温度"].decode('utf-8'))
 +
17 ~ 27℃
  
 +
In [50]:  print (dic["天气"].decode(encoding='utf-8'))
 +
 
</pre>
 
</pre>
  
==批量改 agent 配置==
 
===ssh 方式 ===
 
<pre>
 
 
IP=(
 
172.31.27.83
 
172.31.25.239
 
172.31.16.171
 
172.31.26.183
 
172.31.31.249
 
172.31.25.199
 
172.31.22.218
 
172.31.24.104
 
172.31.19.164
 
)
 
 
myend=`expr ${#IP[@]} - 1`
 
 
for  no in `seq 0 ${myend}`
 
do
 
ssh -i  id_rsa -o "StrictHostKeyChecking no"  root@${IP[$no]} "sed -i 's!Server=148.66.11.55!Server=38.20.125.2!' /etc/zabbix/zabbix_agentd.conf && systemctl  restart zabbix-agent"
 
 
 
done
 
</pre>
 
 
=进阶=
 
写成通用的py脚本  ?
 
 
[https://www.jianshu.com/p/e087cace8ddf 利用zabbix API(python)批量查询主机、模板、添加删除主机]
 
 
[https://www.cnblogs.com/reblue520/p/7614347.html 通过zabbix自带api进行主机的批量添加操作信息填写成列表]
 
 
 
 
[http://aishad.top/wordpress/?p=460 zabbix高级使用五:通过zabbix API添加监控主机has used]
 
 
 
 
[https://blog.51cto.com/13120271/2163782 Zabbix 调用API 批量添加主机等]
 
 
[https://blog.csdn.net/qq_34355232/article/details/83823680 zabbix api获取指定组中的主机的名字并将其修改]
 
 
[https://blog.csdn.net/weixin_42290927/article/details/88292931  zabbix 添加主机 API基础 ]
 
 
[https://blog.csdn.net/weixin_34107955/article/details/89821524 Zabbix 调用API 批量添加主机 (读取Excel)]
 
 
 
[https://blog.csdn.net/weixin_34242509/article/details/92306225 zabbix调用api接口批量添加主机]
 
 
=zabbix api 数据展示=
 
 
https://github.com/evan886/cmdb_salt_zab
 
 
[email protected]:evan886/cmdb_salt_zab.git
 
 
Zabbix数据库模型(二次开发必备)
 
 
https://github.com/livestalker-archive/django-zabbix-api
 
 
[https://www.zhihu.com/question/62351896 如何通过zabbix的api获取前端最近20个问题?]
 
 
先 [https://blog.csdn.net/u011085172/article/details/77374879  python 通过zabbix api来获取当前trigger(告警)并打印出信息]
 
[https://blog.csdn.net/u011085172/article/details/77480245  django bootstrap 获取zabbix告警信息并展示]
 
 
[https://blog.51cto.com/yangrong/1559123  python调用zabbix api接口实时展示数据]
 
 
 
 
和那个项目是一样的呀  就是那个作者
 
[https://blog.csdn.net/qq_28513801/article/details/100828148?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-5.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-5.nonecase 基于Python调用zabbix监控的API接口详解,将数据展现到前台过程、思路分析]
 
 
[https://zhuanlan.zhihu.com/p/38489604 安全管理平台项目记录(1):zabbix API测试]
 
 
 
[https://blog.51cto.com/rfyiamcool/1358792 关于python调用zabbix api接口的自动化实例 [结合saltstack<nowiki>]</nowiki>]
 
 
应该最终是出图
 
 
[https://blog.csdn.net/qq_37534835/article/details/89156591  Python拉取zabbix数据并使用matplotlib模块绘图]
 
 
[https://blog.csdn.net/weixin_39658619/article/details/111984197?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-5&spm=1001.2101.3001.4242 python做监控界面_Zabbix与Python不得不说的基情——用Python定制自己的zabbix界面]
 
 
[https://blog.csdn.net/qq_35465132/article/details/78963269?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-15.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-15.control  前端调用zabbix告警数据]
 
 
 
[https://www.zhihu.com/question/62351896 如何通过zabbix的api获取前端最近20个问题?] 简单实现了一下,根据自己的需要处理数据就行了,好好看看官方文档,写的还是比较全的。
 
 
[https://blog.51cto.com/dreamgirl1314/2044918  python脚本采集服务器数据通过API提交到django web服务器,然后展示在页面上 原创]
 
 
[https://blog.51cto.com/youerning/1748157  基于zabbix用Python写一个运维流量气象图]
 
 
[https://blog.51cto.com/youerning/1735450 从无到有写一个运维APP(一)]
 
[https://blog.51cto.com/youerning/1740152  从无到有写一个运维APP(二) ]
 
 
[https://blog.51cto.com/youerning/1939987  从无到有写一个运维APP(三)完结篇 推荐 原创 ]
 
 
[https://blog.51cto.com/u_15127502/2654995  Python采集linux服务器数据在Django Web界面展示 原创 ]
 
 
[https://blog.51cto.com/dreamgirl1314/2044918  python脚本采集服务器数据通过API提交到django web服务器,然后展示在页面上 原创 ] 没有采集部分呀
 
 
[https://blog.csdn.net/weixin_38320674/article/details/108591529  Python采集linux服务器数据在Django Web界面展示]没有采集部分呀
 
 
[https://blog.51cto.com/dragondragon/1939323?xiangguantuijian&02  Django在web页面展示linux服务器的文本内容 原创 ]
 
 
 
[https://zhidao.baidu.com/question/813182718179234572.html  如何把zabbix里的数据展示到前端 ]
 
 
[https://blog.csdn.net/weixin_33804582/article/details/85088016?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-18.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-18.control  把zabbix图形整合至运维平台]
 
 
[https://blog.csdn.net/weixin_34050389/article/details/92809386?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control  抽取Zabbix的图形整合到自己后台]
 
 
 
[https://blog.csdn.net/weixin_33910137/article/details/85215637  zabbix二次开发之从mysql取值在运维平台js图表展现]
 
 
[https://blog.csdn.net/fishmai/article/details/51850588?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control  zabbix二次开发集成运维平台展现监控图表]
 
 
[http://xiaorui.cc/archives/319 zabbix二次开发集成运维平台展现监控图表]
 
 
[https://blog.csdn.net/weixin_43790276/article/details/90664236  Python使用pyzabbix调用Zabbix API]
 
 
[https://blog.51cto.com/dreamgirl1314/2044918 python脚本采集服务器数据通过API提交到django web服务器,然后展示在页面上]
 
 
[https://blog.csdn.net/h106140873/article/details/90678121?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-4&spm=1001.2101.3001.4242  python调用zabbix api接口实时展示数据]
 
 
[https://github.com/icyway/reportform 调用zabbix的api接口,获取所有监控主机的cpu负载、内存、磁盘使用情况,将采集的数据存入数据库, 最后并使用django框架,进行前端展示。]
 
 
=see also=
 
 
[https://blog.csdn.net/China_AT001/article/details/115057058  python3获取zabbix API数据]
 
 
[https://blog.csdn.net/weixin_41738417/article/details/103234310 python3 调用zabbix API实现批量增加删除主机,主机各种监控项]
 
 
[https://www.jianshu.com/p/1fdcc595fed0 python脚本对接zabbix API添加监控]
 
 
[https://blog.csdn.net/wuyongpeng0912/article/details/108708053  Python调用Zabbix API实现自定义功能]
 
 
[https://segmentfault.com/a/1190000014241994 调用ZABBIX的API获取节点主机信息小记]
 
 
[https://www.cnblogs.com/ssgeek/p/9279775.html zabbix api的使用]
 
  
[https://blog.51cto.com/zengestudy/1850578 通过Zabbix API 添加host]
+
Python decode()方法
 +
和 encode() 方法正好相反,decode() 方法用于将 bytes 类型的二进制数据转换为 str 类型,这个过程也称为“解码”。
  
[https://www.cnblogs.com/wumingxiaoyao/p/7478749.html python3 + zabbix api 的使用]
+
decode() 方法的语法格式如下:
  
[https://blog.csdn.net/yqw7410/article/details/105619139?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242  基于Zabbix api二次封装开发_获取数据和页面展示]
+
bytes.decode([encoding="utf-8"][,errors="strict"])
 +
该方法中各参数的含义如表 2 所示。
  
  
[https://blog.csdn.net/sdewendong/article/details/103583236?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.control  zabbix二次开发详细例子说明]
 
  
 +
=参考=
  
[https://blog.csdn.net/lihaiyong92/article/details/83057584?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-3.control  通过http请求 zabbix api 获取监控的流量数据]
+
[http://c.biancheng.net/view/4305.html Python encode()和decode()方法:字符串编码转换]
 +
[http://www.runoob.com/python/att-string-decode.html Python 解码字符串 decode()方法]
  
[https://blog.51cto.com/nginxs/1889120  运维python进行() 用python写一个自己zabbix的调用方法 原创 ]
+
[https://www.w3school.com.cn/python/ref_string_encode.asp Python 编码字符串encode()方法]

2021年7月11日 (日) 14:56的最新版本

Python decode()方法以 encoding 指定的编码格式解码字符串。默认编码为字符串编码

encode() 方法为字符串类型(str)提供的方法,用于将 str 类型转换成 bytes 类型,这个过程也称为“编码”。

例子

In [38]: dic["温度"] = items[0][3]

In [39]: dic["温度"]
Out[39]: '17 ~ 27\xe2\x84\x83'

In [42]: print (dic["温度"].decode('utf-8'))
17 ~ 27℃

In [50]:  print (dic["天气"].decode(encoding='utf-8'))
晴


Python decode()方法

和 encode() 方法正好相反,decode() 方法用于将 bytes 类型的二进制数据转换为 str 类型,这个过程也称为“解码”。

decode() 方法的语法格式如下:

bytes.decode([encoding="utf-8"][,errors="strict"]) 该方法中各参数的含义如表 2 所示。


参考

Python encode()和decode()方法:字符串编码转换 Python 解码字符串 decode()方法

Python 编码字符串encode()方法