记录python的一些基础语法,用于查阅 列表和元组 列表和元组都是有序的,可以存储任意数据类型的集合 列表是动态的,长度可变,存储空间和性能略逊与元组 元组是静态的,长度大小固定,不能增加修改 创建一个列表使用...(tup)) sorted(tup) 字典和集合 本质就是hash表 删除会赋值为特殊值并在rehash调整大小的时候进行处理 会保留1/3的大小,小于时扩容并rehash 可变元素不能作为key #...操作 # 序列化对象为json字符串 json.dumps(params) # 反序列化json字符串 json.loads(params_str) 条件 使用elif 后面要有冒号 条件内为空的均为...反序列化的时候需要异常处理 文件需要异常处理 必要的时候才进行异常处理 try: s = input('please enter two numbers separated by comma:...8, 10] # filter函数,对于集合内每个元素都做一次func,并返回true或者false,结果返回为true的集合 l = [1, 2, 3, 4, 5] new_list = filter
任何数值类型的零: 0, 0.0, 0j, Decimal(0), Fraction(0, 1) 空的序列和多项集: '', (), [], {}, set(), range(0) 逻辑值的布尔运算 布尔运算主要有...还有一些额外的方法: int.bit_length() 返回以二进制表示一个整数所需要的位数,不包括符号位和前面的零: >>> n = -37 >>> bin(n) '-0b100101' >>> n.bit_length...bytearray.zfill(width) 返回原序列的副本,在左边填充 b'0' 数码使序列长度为 width。...iter(d) 返回以字典的键为元素的迭代器。 这是 iter(d.keys()) 的快捷方式。 clear() 移除字典中的所有元素。 copy() 返回原字典的浅拷贝。...d |= other 用 other 的键和值更新字典 d ,other 可以是 mapping 或 iterable 的键值对。当 d 和 other 有相同键时, other 的值优先。
(2)如果有多个参数的时候,那么可以先把所有的参数放在字典中,然后在render_template中, 使用两个星号,把字典转换成关键参数传递进去,这样的代码更方便管理和使用。...(2)如果有多个参数的时候,那么可以先把所有的参数放在字典中,然后在render_template中,使用两个星号,把字典转换成关键参数传递进去,这样的代码更方便管理和使用。...,双星号把字典转换成关键参数传递进去 if __name__ == '__main__': app.run(debug=True) (4)模板中访问模型(类)中的属性和访问字典中的元素 访问模型中的属性或者是字典...F/3_lighting_miaoxingren.jpg') }}"> (3)length过滤器 length过滤器主要用于求列表或者字符串或者字典或者元组的长度。...last(value):返回一个序列的最后一个元素。示例:names|last。 length(value):返回一个序列或者字典的长度。示例:names|length。
使用小括号()和逗号分隔的元素创建元组: my_tuple = (1, 2, 3) b. 省略小括号 my_tuple = 1, 2, 3 逗号分隔的元素会被组合成一个元组。...检查元素是否存在于元组中 my_tuple = (1, 2, 3) # 获取元组的长度 print(len(my_tuple)) # 输出:3 # 元素计数 print(my_tuple.count...,元组my_tuple包含了三个元素,分别是1、2和3。...通过元组解构,我们将这三个值分别赋给了变量a、b和c。结果是变量a的值为1,变量b的值为2,变量c的值为3。 需要注意的是,变量的数量必须与元组中的元素数量相同,否则会引发异常。...2) 变量的数量多于元组中的元素数量: my_tuple = (1, 2, 3) a, b, c, d = my_tuple ValueError: not enough values to unpack
name__)@app.get('/')@input(Foo)@output(Bar)def hello(): return {'message': 'Hello'}使用@app.input验证和反序列化请求数据的输入要验证和反序列化请求体或请求查询参数...可以将其视为描述有效传入数据的一种方式。如果您已经熟悉了marshmallow,那么您已经知道如何编写数据模式。...,你可以将该字典作为返回元组的第二个元素传递:@app.post('/pets')@app.input(PetIn)@app.output(PetOut, status_code=201)def create_pet...Flask-HTTPAuth,APIFlask提供了三种类型的身份验证:HTTP Basic要实现HTTP基本身份验证,你需要:使用HTTPBasicAuth创建一个auth对象from apiflask...请参阅Flask-HTTPAuth的文档以了解详细信息。
在重写的过程中实现对对象的序列化就可以了 2.不完美的对象转字典 我们首先要做到的就是让Flask可以调用到我们自己定义的default函数。...要做到这一点,我们需要继承JSONEncoder,然后重写defualt方法,然后继承Flask,在子类里,替换掉Flask原有的json_encoder对象。...,并且无论类变量和实例变量,都可以转化,更加灵活的是,我们可以自己控制,那些变量需要转化,哪些变量不需要转化 注意: 如果我们只想序列化一个元素 def keys(self): return (...'name') 这样是不行的,因为只有一个元素的元素不是这样定义的,我们需要在后面加上一个逗号 def keys(self): return ('name',) 4.序列化SQLALChemy模型 有了之前的基础...优化1:每一个模型如果需要序列化,都要有getitem方法,可以放到基类里面去 优化2:default函数,是递归调用的,只要遇到不能序列化的对象,就会调用default函数。
首先,用户要能够输入用户名和密码,所以需要网页和表单,用以实现用户输入和提交的过程。...(为简明起见,本文将用户信息存储到json文件当中) 登录之后,我们需要维持用户登录状态,以便用户在访问特定网页的时候来判断用户是否已经登录,以及是否有权限访问改网页。...这就需要有维护一个会话来保存用户的登录状态和用户信息。...flask-wtf和wtf主要是用于建立html中的元素和Python中的类的对应关系,通过在Python代码中操作对应的类,对象等从而控制html中的元素。...函数来进行加密,由于此函数默认使用了sha1算法,并添加了长度为8的盐值,所以还是相当安全的。
如果返回的是一个字符串,那么根据这个字符串和缺省参数生成一个用于返回的 响应对象。 如果返回的是一个字典,那么调用 jsonify 创建一个响应对象。...status 的值会重载状态代码, headers 是一个由额外头部值组成的列表 或字典。 如果以上都不是,那么 Flask 会假定返回值是一个有效的 WSGI 应用并把它转换为 一个响应对象。...我们试试自己返回一个json字符串,看看和jsonfy()处理过的有什么不一样 from flask import Flask, jsonify, json app = Flask(__name__)...JSON,并且在声明返回头部application/json,它返回一个Response 对象 它使用json.dumps 序列化数据, 但是 args和 kwargs 会被作为数据,而不是参数 1.如果是单个参数...1.如果返回值是一个字典,那么会调用 jsonify() 来产生一个响应 2.jsonify 返回的Response的headers属性为:Content-Type: application/json
目录 1.看源码 2、重写默认的default函数,实现自己的序列化机制 3、把对象转化成字典 3.1 __dict__的方式 3.2、定义keys和__getitem__的方式 4、最终的代码实现 5...,那么就会去调用default函数,为什么会这样的,原因就在于flask不知道怎么序列化,但是它会给我们一个途径,让我们来指明这个数据结构应该怎么序列化,换句话说,default函数最主要的就是我们需要在内部把不能序列化的结构转化为可以序列化的结构...a = hehe() print(a) jsonify(a) # 不报错了 可以看到flask把我们实例化的hehe类当做参数o传递了进来,有两个属性 3、把对象转化成字典 3.1 __dict_...所以加入一个实例变量的时候就有值了(如下图) 所以我们看到这种方式是可以的,但是我们想把无论类变量还是实例变量都像把它直接序列化,我们就需要用下面的方法把所有的都转成字典 3.2、定义keys和__getitem...context. a = hehe() print(a) # jsonify(a) # {'name': 'zhangsan
S但不在T中的元素 S &= T 交,更新集合S,包括同时在集合S和T中的元素 S ^= T 补,更新集合S,包括集合S和T中的非相同元素 # 方法 S.add(x) 如果x不在集合S中,将x增加到S...复制n次 s[i] 索引,返回s中的第i个元素,i是序列的序号 s[i: j] 或 s[i: j: k] 切片,返回序列s中第i到j以k为步长的元素子序列 # 方法 len(s) 返回序列s的长度...,即元素个数 min(s) 返回序列s的最小元素,s中元素需要可比较 max(s) 返回序列s的最大元素,s中元素需要可比较 s.index(x) 或 s.index(x, i, j) 返回序列s从i开始到...(im) # 调整图像的锐度 CSV库和JSON库 CSV:标准库,操作CSV的功能 json:处理JSON格式的标准库 json库包含两个过程:编码和解码,序列号和反序列化 # json方法 json.dumps...程序的控制结构 -分支结构与异常处理 -遍历循环、无限循环 3、函数和代码复用 -函数定义和使用 -函数递归 4、组合数据类型 -集合 -序列:元祖和列表 -字典 5、文件和数据格式化 -文件的使用 -
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。 Python有6个序列的内置类型,但最常见的是列表和元组。...序列都可以进行的操作包括索引,切片,加,乘,检查成员。 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。...# 元组中只包含一个元素时,需要在元素后面添加逗号 元组操作 # 访问元组tuple_1 = (1, 2, 3, 4, 5, 6) print(tuple_1[0]) # 1print(tuple_...然而,对于长度为1~20 的元组,即使他们不在被使用,他们的内存空间并不会立即返还给操作系统,而是留下来以待未来使用。 字典(Dictionary) 字典是另一种可变容器模型,且可存储任意类型对象。...) # 2print(d['c']) # 3# 修改字典d = {'Name': 'Payne', 'Age': 20, 'Class': 'First'} d['Age'] = 8 # 更新
这个模式在Flask的应用管理和导入配置细节的更多信息。最后,我使用flask_bootstrap包将bootstrap元素添加到网页,此包在加载配置后启动。...此方法返回的元数据包含编码为JSON模式字典的模型的输入和输出模式。最后,get_model()方法搜索_models列表中的模型,并返回对一个模型对象的引用。...该预测终点,因为它并没有定义为是预计输入和输出数据的模式类从以前的终端不同的功能。如果客户想要知道需要将哪些字段发送到模型进行预测,它可以找到元数据端点发布的JSON模式中的字段的描述。...从JSON模式创建的webform是动态的,它允许为应用程序托管的任何模型创建自定义表单。...这篇博文的方法的一个缺点是,从模型对象的predict()方法给出和返回的对象中的字段类型必须可序列化为JSON,并且模式包必须能够为它们创建JSON模式。对于更复杂的数据模型,这并不总是很容易。
:与另一个列表进行拼接扩展 pop:删除一个元素,接受一个索引参数,且要求索引为有效索引,不允许超出列表索引范围;缺省为-1,此时删除尾端元素 remove:删除一个元素,接受一个列表元素参数,要求该元素在列表中存在...,每个键值对为元组形式 get:接受一个key和一个默认value,当字典中存在该元素时返回其value,否则返回默认值 copy:字典的浅拷贝 这里对pop和popitem、setdefault和get...元组类型内置2个方法接口 index:查找给定元素的索引,若元素不存在报错 count:对给定元素在元组中的出现次数计数,不存在时返回0 举个例子: 1t = (1, 2) 2t.index(3)...#ValueError: tuple.index(x): x not in tuple 3t.count(3) # 0 需要注意元组初始化时的一个常见错误:当元组元素个数为1个时,要在元素后面加一个",...当然,实现的方式有很多,堆heapq可能是比较理想的,但实际上一个列表也足以满足需要 关注和取消关注:实际上就是维护每个用户的关注序列,考虑到后续还有取关的操作,加之题目设定了一些无效操作(例如重复关注和自己关注自己
# 标准格式为:[起始偏移量start:终止偏移量end[:步长step]] # 切片操作时,起始偏移量和终止偏移量不在 [0,字符串长度-1] 这个范围,也不会报错。...# 不管什么方式使用,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象 # 列表推导式: [0, 2, 4, 6, 8] a = [x * 2 for x in range(5)...可以通过“键对象”实现快速获取、删除、更新对应的“值对象” 字典特点: 无序, 可变, 大括号 {} + 键值对 k,v 字典是 Python 项目中最常用的序列类型之一, 对应Java 中常用的...Json 数据类型 操作 字典的创建 通过 {} + kv 来创建 通过dict()来创建字典对象(两种方式) 过zip()创建字典对象 通过fromkeys创建值为空的字典 # 字典(类比Json)...) 方法检测相等性 (3) 若 a==b 为真,则 hash(a)==hash(b) 也为真 集合 介绍 集合: 集合是无序可变,元素不能重复 实际上,集合底层是字典实现,集合的所有元素都是字典中的
而 python 的字典的字符串表现形式的规则看上去和 json 类似,但是字典本身是一个完整的数据结构,实现了一切自身该有的算法。...json.dumps({1:2}) 的结果是 {”1″:2}; json.dumps((1,2)) 的结果是[1,2] 3.json key name 必须是字符串, python 是hashable...1.json.loads() Json -> Python字典 import json strList = '[1, 2, 3, 4]' strDict = '{"city": "北京", "...) # '[1, 2, 3, 4]' json.dumps(tupleStr) # '[1, 2, 3, 4]' # 注意:json.dumps() 序列化时默认使用的ascii编码 # 添加参数 ensure_ascii...': 'utf-8'} 3.json.dump() 将Python内置类型序列化为json对象后写入文件 import json listStr = [{"city": "北京"}, {"name
# 标准格式为:[起始偏移量start:终止偏移量end[:步长step]] # 切片操作时,起始偏移量和终止偏移量不在 [0,字符串长度-1] 这个范围,也不会报错。...可以通过“键对象”实现快速获取、删除、更新对应的“值对象” 字典特点: 无序, 可变, 大括号 {} + 键值对 k,v 字典是 Python 项目中最常用的序列类型之一, 对应Java 中常用的...Json 数据类型 操作 字典的创建 通过 {} + kv 来创建 通过dict()来创建字典对象(两种方式) 过zip()创建字典对象 通过fromkeys创建值为空的字典 # 字典(类比Json...,数组长度为8 a = {} a["name"]="比尔" 我们要把”name”=”比尔”这个键值对放到字典对象a中, 首先第一步需要计算键”name”的散列值。...假设数组长度为8,我们可以拿计算出的散列值的最右边3位数字作为偏移量,即 101 ,十进制是数字5。 我们查看偏移量5,对应的 bucket 是否为空。如果为空,则返回 None 。
序列 (1) 字符串、列表和元组都是序列 序列的两个主要特点是索引操作符和切片操作符 - -索引操作符让我们可以从序列中抓取一个特定项目 - -切片操作符让我们能够获取序列的一个切片,...(2) 序列的基本操作 - 1. len(): 求序列的长度 - 2. +: 连接2个序列 - 3. *: 重复序列元素,乘号后必须是一个数字 - 4. in: 判断元素是否在序列中...' In [11]: a[-1:-4:-1] Out[11]: 'fed' 2.2元组tuple() 元组和列表十分相似,定义的时候需要用括号,元组内容是一个内容的时候,需要加逗号,不加逗号你输入的内容是什么就是什么...list3 Out[102]: True 3.字典{} 字典是python中的唯一的映射类型(哈希表) 字典对象是可变的,但是字典的键必须使用不可变对象,键值创建可以是字符串和元组,但是不能是列表,...eg:dict_values([‘xihaji’, 123, 456]) dict.viewitems() 返回字典中key-value的集合,把这2个元素存储为一个元组,之后把所有的元组组成一个列表,
'JSON_AS_ASCII': True, # 默认情况下 Flask 使用 ascii 编码来序列化对象。...'JSON_SORT_KEYS': True, #默认情况下 Flask 按照 JSON 对象的键的顺序来序来序列化它。...使用 request.json 则返回json解析数据, 否则返回 None Flask中的jinja2和render_template 前端-普通数值 ...'JSON_AS_ASCII': True, # 默认情况下 Flask 使用 ascii 编码来序列化对象。...'JSON_SORT_KEYS': True, #默认情况下 Flask 按照 JSON 对象的键的顺序来序来序列化它。
在本报错中,错误出现在以下代码行: 'id': request.json['id'], 这里的 request.json 是一个元组而不是字典,因此使用字符串 'id' 作为索引引发了 TypeError...但是在前端打印数据发现无误,相比较本地运行结果发现后端获取的request.json有误。此时需要考虑环境问题。 解决方案 必要的解决方法 简单来说:需要确保云服务器和本地环境一致。...可能有用的解决方法 本案例是代码正确,环境有误。如果代码本身有问题,可以参考以下方法解决。 在 Python 中,元组(tuple)是一个有序的、不可变的序列,其中的元素可以通过索引来访问。...例如,对于元组 t = (1, 2, 3),可以通过索引来访问其中的元素: print(t[0]) # 输出: 1 print(t[1]) # 输出: 2 print(t[2]) # 输出: 3...这是因为索引必须是整数类型或切片(例如 t[0] 或 t[1:3]),而不能是字符串类型。
T') ''' 0 False 1 False 2 True 3 False 4 True 5 False dtype: bool ''' 还有一些为每个元素返回列表或其他复合值...使用传递的分隔符连接每个元素中的字符串 get_dummies() 将虚拟变量提取为数据帧 向量化的项目访问和切片 特别是get()和slice()操作,可以在每个数组中执行向量化元素访问。...我们得到了ValueError,提到有“尾随数据”。在互联网上搜索此错误的文本,似乎是由于使用了一个文件,其中每行本身是一个有效的 JSON,但完整文件不是。...).shape # (2, 12) 是的,显然每一行都是有效的 JSON,所以我们需要将它们串在一起。...进一步探索食谱 希望这个例子为你提供了一些能在 Pandas 字符串方法中有效使用的数据清理操作类型。当然,建立一个非常强大的食谱推荐系统需要更多的工作!
领取专属 10元无门槛券
手把手带您无忧上云