【python】0、超详细介绍:json、http

文章目录

一、json

py 复制代码
import json
f = open('data.json') # open json file
data = json.load(f) # 读出 json object
for i in data['emp_details']: # 取出一级属性 emp_details, 下的各二级属性
    print(i)
json 复制代码
// 正确的 json 格式如下, 但它无法通过 python 的 request(json.dumps(payload)) 库发送
{
    "Face": false,
    "Id": null
}

// 能通过 python 的 request(json.dumps(payload)) 库发送的如下
{
    "Face": False, // 需大写 F
    "Id": None // 需为 None 而不是 null
}

二、http

py 复制代码
def rec_image(url):
    server_addr = "http://192.168.100.99:8000/api"
    payload = {
        'image': {
            'url': url,
        }
    }
    headers = {'Content-Type': 'application/json'}
    resp = requests.post(server_addr, json=payload, headers=headers) # 或将 json=payload 替换为 data=json.dumps(payload)
    print(resp.text)

requests http

2.1 json 读取 + request 序列化

py 复制代码
import json
import requests

def send_request(task_id):
    url = "http://192.168.2.99:8000/new"
    with open("my.json") as file:
        content = json.load(file) # 读出 json object
    content["task_id"] = task_id  # 根据 key 更改 value
    payload = json.dumps(content) # 将 json object 序列化为 json string
    print(payload)

    headers = {"Content-Type": "application/json"}
    response = requests.request("POST", url, headers=headers, data=payload) # 向 request 包传入 json string 参数
    print("response: ", response.text)

send_request("task1")

三、基本类型

3.1 decimal

py 复制代码
# 保留两位小数
a = 12.345
round(a, 2) # 12.34
print("%.2f", a) # 12.34

序列化时注意:

  • js 的 null 值对应 py 的 None
  • js 的 bool 值只有 True 和 False (没有 true 和 false)

四、图像

4.1 颜色格式转换

hex: #0C78B7

rgb: (12,120,183)

这两种颜色格式,可通过RGB颜色值与十六进制颜色码转换转换,和RGB颜色查询查询

也可通过代码实现:

py 复制代码
def Hex_to_RGB(hex):
    r = int(hex[0:2],16)
    g = int(hex[2:4],16)
    b = int(hex[4:6], 16)
    return tuple([r,g,b]) # 将 list 转为 tuple
相关推荐
xiangyun6116 分钟前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法
xiangyun6128 分钟前
【408数据结构 06】双链表、循环链表、静态链表
c语言·开发语言·数据结构·c++·算法
OKkankan2 小时前
LangChain 能力详解!:输出解析、RAG、向量数据库与 Retriever 检索器
数据结构·python·langchain·ai应用
白远山2 小时前
家政服务家政社区派单实战:调度系统架构设计与实现指南
java·开发语言·小程序·架构·需求分析
山哥ol2 小时前
【Geany 环境配置与中文乱码解决参考】
python
DevRay3 小时前
Java 21虚拟线程深度实战:告别线程池焦虑,百万并发吞吐量直接翻倍(原理+代码+避坑)
java·开发语言
free-elcmacom3 小时前
C++学习<1>程序分区
开发语言·c++
会飞锦鲤3 小时前
基于 Mask R-CNN 的药片缺陷检测系统
人工智能·pytorch·python·神经网络·resnet-50
醉颜凉3 小时前
Java 必看:如何彻底避免 HashMap 多线程死循环问题?
java·开发语言
默 语3 小时前
Java新手入门:从零开始安装JDK并配置环境变量
java·开发语言·python·mysql·group by·1024程序员节·数据去重