首页 文章 精选 留言 我的

精选列表

搜索[Python],共10000篇文章
优秀的个人博客,低调大师

python爬取猫眼电影 top 100 保存到CSV

代码没含量,希望帮到入门的小白。 import requests import re,json from lxml import etree import csv class Spider(): def open_csv(self): ''' 在CSV文件的开头写一行标题 :return: ''' with open('data.csv', 'a', newline='') as f: spamwriter = csv.writer(f) spamwriter.writerow(['title', 'star', 'date', 'score']) def __get_page(self,url,headers): ''' 获取文本内容 :param url: :param headers: :return: ''' try: response = requests.get(url,headers=headers) if response.status_code == 200: return response.text else: return None except Exception: return None def __parse_page(self,html): ''' 解析HTML,并得到提取的数据 :param html: :return: ''' data = etree.HTML(html) results = data.xpath('//*[@class="board-wrapper"]/dd/div/div') for result in results: # 电影名称 电影主演 电影上映日期 评分 ws = [ result.xpath('./div[1]/p[1]/a/text()')[0], result.xpath('./div[1]/p[2]/text()')[0].strip(), result.xpath('./div[1]/p[3]/text()')[0], result.xpath('./div[2]/p/i[1]/text()')[0] + result.xpath('./div[2]/p/i[2]/text()')[0], ] #保存到CSV with open('data.csv','a',newline='') as f: writer = csv.writer(f) writer.writerow(ws) def run(self): ''' 程序运行入口 :return: ''' self.open_csv() for i in range(11): url ='http://maoyan.com/board/4?offset={}'.format(10*i) headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64)' ' AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } html = self.__get_page(url,headers) self.__parse_page(html) #实例化类 spider = Spider() spider.run()

优秀的个人博客,低调大师

python-面向对象(绑定方法与非绑定方法)

一、绑定方法: 绑定给谁就应该由谁来调用,谁来调用就会将谁当做第一个参数传入 1.绑定给对象的方法:类中定义的函数默认就是绑定给对象的 2.绑定给类的方法:为类中定义的函数加上一个装饰器classmethod 二、非绑定方法: 即不与类绑定,又不与对象绑定,意味着对象和类都可以来调用,无论谁来调用都是一个普通函数,没有自动传值的效果 import settings class Mysql: def __init__(self,ip,port): self.ip = ip self.port = port self.id =self.create_id() def tell_info(self): print('id:%s,ip:%s port:%s'%(self.id,self.ip,self.port)) @classmethod def from_conf(cls): return cls(settings.ip,settings.port)#clx(ip,port) @staticmethod def create_id(): import uuid return uuid.uuid4() # obj = Mysql('1.2.3.4','3006') obj = Mysql.from_conf() obj.tell_info() 后期补全!焚膏油以继晷,恒兀兀以穷年。

优秀的个人博客,低调大师

Python全栈 MongoDB 数据库(数据的查找)

非关系型数据库和关系型数据库的区别? 不是以关系模型构建的,结构自由 非关系型数据库不保证数据一致性 非关系型数据库可以在处理高并发和海量数据时弥补关系数据库的不足 非关系型数据库在技术上没有关系型数据库技术成熟 查找操作: db.集合名.find(查找条件,域) 查找条件: 键值对的形式给出要展示的文档 域: 以键值对对的形式给出要展示或不展示的域 0为值不显示该域 1为值显示该域 如果使用0设置某些域不显示默认其他域显示 如果使用1设置某些域显示默认其他域不显示 *_id 只有设置为0才不显示否则默认显示 除_id以外,其他域必须同时设置0或1 db.集合名.findOne(查找条件,域) 查找复合条件的第一条文档 查找条件(query): 操作符: 使用$注明的一特殊意义的字符串,表达某个特定含义 比如:$gt表示大于 语法: db.集合名.find({name:{$gt:"tom"}}, {_id:0}) 比较操作符: $eq 等于 $lt 小于(字符串也可以比较大小) $lte 小于等于 $gt 大于 $gte 大于等于 $ne 不等于 $in 在什么里(in) $nin 不在什么里(not in) 逻辑操作符: $and 与 query内如果多个条件用逗号隔开默认就是and关系 $or 或 $not 非 $nor 既不也不 数组: 使用中括号[]将一定的数据组织为一种数据结构 数组中的数据类型可以不同 是有序的 db.class2.find({score:{$gt:90}}, {_id:0}) $size 通过数组中个数查找 $all 查找数组中包含多项的 $slice 取数组中部分显示,在域(field)中声明 其他query查询: $exists 判断一个域是否存在 $mod 余数查找 $type 数据类型查找 distinct() db.class2.distinct("score") 查看集合内某个域的取值范围 pretty() 将查询结果格式化显示 limit(n) 显示查找结果的前n条结果 skip(2) 跳过前条显示后面的结果 count() 计数统计 sort({filed:1/-1}) 排序 参数:键代表那个域,1表示升序, -1表示降序 复合排序: 当第一排序项相同的时候按照第二排序项排序,以此类推 函数的连续调用 当一个函数的返回结果仍然是文档集合的时候可以连续调用函数 文档的删除操作 db.集合名.remove(query,justOne) remove(query,justOne) 功能 : 删除文档 参数 : query 筛选要删除的文档,相当于where 用法同 查找 justOne 布尔值 默认为False 表示删除所有复合条件的文档 如果设置为true 则表示只删除第一条复合条件文档 修改操作: db.集合名.update(query, update,upert,multi) 参数: query: 筛选要查找要修改的文档 update: 将筛选的文档修改为什么内容 需要配合修改操作符 upsert: bool值 默认false 如果query的文档不存在则不进行任何操作 设置为true 如果query和文档不存在 就根据query和update插入新文档 multi: bool值 默认false 如果query文档有多条则只修改第一条 设置为true 则修改所有符合条件的文档、 综合示例: 1. 创建数据库 名字 grade use grade 2. 数据库中创建集合 名字 class 3. 集合中插入若干文档格式如下 {name:'zhang',age:10,sex:'m',hobby:['a','b'...]} 年龄在4-13之间 hobby几项都可以,可选项: draw sing dance basketball football pingpong running computer db.class.insert({name:'zhang',age:10,sex:'m',hobby:['a','b'...]}) 4. 查询练习 查看班级所人信息 db.class.find() 查看年龄大于10岁的学生信息 db.class.find({age:{$gt:10}}) 查看年龄 8-11 岁之间的学生信息 db.class.find({age:{$gt:8,$lt:11}}) 找到年龄9岁且为男生的学员 db.class.find({age:9,sex:'m'}) 找到年龄小于7岁或者大于11岁的学生 db.class.find({$or:[{age:{$gt:11}},{age:{$lt:7}}]}) 找到年龄8岁或者11岁的学生 db.class.find({age:{$in:[8,11]}}) 找到有两项兴趣爱好的学生 db.class.find({hobby:{$size:2}}) 找到喜欢computer的学生 db.class.find({hobby:"computer"}) 找到既喜欢画画,又喜欢跳舞的学生 db.class.find({hobby:{$all:['draw','dance']}}) 统计兴趣爱好有3项的学生人数 db.class.find({hobby:{$size:3}}).count() 找到本班年龄第二大的学生 db.class.find({}).sort({age:-1}).skip(1).limit(1) 查看学生学生兴趣爱好的范围 db.class.distinct('hobby') 找到年龄最小的三个同学 db.class.find({}).sort({age:1}).limit(3) 删除虽有年龄小于6岁或者大于12岁的学员 db.class.remove({$or:[{age:{$lt:6}},{age:{$gt:12}}]})

优秀的个人博客,低调大师

【Python】从0开始写爬虫——转身扒豆瓣电影

豆瓣就比较符合这个“明人不说暗话”的原则。所以我们扒豆瓣,不多说,直接上代码 from scrapy import app import re header = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36', 'Host': 'movie.douban.com', 'Accept-Language': 'zh-CN,zh;q=0.9' } movie_url = "https://movie.douban.com/subject/26985127/?from=showing" m_id = re.search("[0-9]+", movie_url).group() # 获取soup对象 soup = app.get_soup(url=movie_url, headers=header, charset="utf-8") content = soup.find(id="content") # 抓取电影名字和上映年份 m_name = content.find("h1").find("span").string m_year = content.find(class_="year").string # 抓取导演 info = content.find(id="info") m_directer = info.find(attrs={"rel": "v:directedBy"}).string # 上映日期 m_date = info.find(attrs={"property": "v:initialReleaseDate"}).string # 类型 types = info.find_all(attrs={"property": "v:genre"}, limit=2) m_types = [] for type_ in types: m_types.append(type_.string) # 抓取主演,只取前面五个 actors = info.find(class_="actor").find_all(attrs={"rel": "v:starring"}, limit=5) m_actors = [] for actor in actors: m_actors.append(actor.string) # 片长 m_time = info.find(attrs={"property": "v:runtime"}).string # m_adaptor = info.select() print("id", m_id, "名称", m_name, "年份 ", m_year, "导演 ", m_directer, "主演", m_actors) print("上映日期", m_date, "类型", m_types, "片长", m_time) 输出: id 26985127 名称 一出好戏 年份 (2018) 导演 黄渤 主演 ['黄渤', '舒淇', '王宝强', '张艺兴', '于和伟'] 上映日期 2018-08-10(中国大陆) 类型 ['剧情', '喜剧'] 片长 134分钟 简单粗暴

优秀的个人博客,低调大师

Python数据分析及可视化-小测验

本文中测验需要的文件夹下载链接: https://pan.baidu.com/s/1OqFM2TNY75iOST6fBlm6jw 密码: rmbt 下载压缩包后解压如下图所示: image.png 首先将5题的文件复制形成副本,如下图所示: image.png 在资源管理器的路径中输入cmd,如下图所示: image.png 在上图中输入后,按Enter键运行进入cmd窗口。 在cmd窗口中输入并运行命令: jupyter notebook,如下图所示: image.png 在上图中输入后,按Enter键运行自动打开浏览器并且进入jupyter notebook编程界面。 在jupyter notebook中,点击 第一题,ipynb和 第一题-副本.ipynb。 浏览器会新建两个标签页,如下图所示: image.png 在两个标签页中,读者可以对照题目要求完成做题。 下面是5道题目作者的答案和解析。 1.第一大题 1.1 第一步:导入相应的模块 最后2行代码可以使作图时不出现编码错误,分别用来正常显示中文标签和正常显示负号。 import pandas as pd from pandas import Series,DataFrame import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 1.2 第二步:利用pandas读取datasets目录下chipo.csv并显示前十行数据(赋值给变量chipo) csv文件默认的分隔符是逗号,pd.read_csv方法中sep关键字参数的默认值也为逗号,所以可以不写sep关键字。 显示前十行数据用chipo.head(10)即可。 chipo = pd.read_csv('datasets/chipo.csv') chipo.head(10) 1.3 第三步:根据列名为item_name中每种商品出现的频率,绘制出柱状图 给出的答案示例是购买次数排名第2-6名的商品的作图结果。chipo.item_name.value_counts()是对商品购买次数进行统计,返回的结果降序排列,数据类型为Series。plt.xticks()方法中可以填入1个参数或者多个参数,下面代码中采用的是填入3个参数。 x_list是x轴标记点,数据类型为列表;xticks_list是x轴标记点显示值,数据类型为列表; rotation设置为90,是x轴标记点显示值以右边为轴逆时针旋转90度。 plt.bar方法中指定每根柱子的颜色,这样才可以画出示例答案的效果。 mostOrder_list = chipo.item_name.value_counts().iloc[5:0:-1] xticks_list = mostOrder_list.index x_list = range(len(xticks_list)) y_list = mostOrder_list.values plt.bar(x_list, y_list, width=0.5, color=['b', 'orange', 'g', 'r', 'purple']) plt.xticks(x_list, xticks_list, rotation=90) plt.title('购买次数最多的商品排名') plt.xlabel('商品名称') plt.ylabel('出现的订单次数') plt.show() 上面这段代码的运行结果如: 柱形图.png 1.4 第四步:根据订单编号(order_id)进行分组,求出每个订单花费的总金额,例如订单编号为1的总金额为11.56美元。然后根据每笔订单的总金额和每笔订单购买商品的总数量画出散点图(总金额为x轴,商品总数为y轴)。 先将chipo这个变量深度拷贝给c变量,这样可以避免影响原数据,使代码每次都能成功运行。 item_price这个单词是一个条目的价格,不是单个商品的单价。 我们平时超市购物的单子的最后price那一列也是算的这一个条目的价格,比如2个相同的商品算1个条目。 c = chipo.copy() c.quantity = c.quantity.astype('int') c.item_price = c.item_price.str.strip('$').astype('float') order_group = c.groupby('order_id') x_list = order_group.item_price.sum() y_list = order_group.quantity.sum() plt.scatter(x_list, y_list, color='g') plt.xlabel('订单总价') plt.ylabel('商品总数') plt.title('每笔订单总金融和购买商品数量关系') plt.show() 上面这段代码的运行结果如下: 散点图.png 2.第二大题 2.1 第一步:导入相应的模块 最后2行代码可以使作图时不出现编码错误,分别用来正常显示中文标签和正常显示负号。 import pandas as pd from pandas import Series,DataFrame import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 2.2 第二步:利用pandas读取datasets目录下special_top250.csv并显示前五行数据(赋值给变量top250) csv文件默认的分隔符是逗号,pd.read_csv方法中sep关键字参数的默认值也为逗号,所以可以不写sep关键字。 显示前五行数据用chipo.head()即可。 top250 = pd.read_csv('datasets/special_top250.csv') top250.head() 2.3 第三步:在同一个图中绘制出电影时长和电影排名的散点图关系及电影时长的频率分布直方图,分50组,如下图所示: x_series = top250.movie_duration y_series = top250.num plt.figure(figsize=(14,6)) plt.subplot(121) plt.scatter(x_series, y_series) plt.xlabel('电影时长') plt.ylabel('电影排名') plt.gca().invert_yaxis() plt.subplot(122) plt.hist(x_series,bins=50) plt.show() 上面一段代码的运行结果如下: image.png 2.4 第四步:由上图中电影时长的频率分布直方图,并不能比较准确的反映出每个分组下电影的数量,请根据以下提示,绘制如下图所示根据电影时长分组的柱状图 bins = [0,80,120,140,180,1000] tags = ['偏短','标准','正常','偏长','超长'] 2.5 第五步:具体显示每个分组下的电影数量 在pandas官网中查询pandas.cut函数中的参数,其中参数bins是数据区间分割值,参数labels是数据按照区间分类后的标签,如下图所示。如果参数bins和labels都是可迭代对象,则bins比labels长度大1。 pandas.cut用法官方文档.png 将电影时长分类后赋值给duration_labeled_series变量,数据类型为Series。查看其中的值,如下图所示: image.png 对duration_labeled_series变量统计每个分类出现的次数,使用value_counts方法。 duration_series = top250.movie_duration duration_labeled_series = pd.cut(duration_series, bins=bins, labels=tags) duration_labeled_series.value_counts() 2.6 第六步:绘制出结果图 duration_stat_series = duration_labeled_series.value_counts(sort=False) duration_stat_series.plot(kind='bar') plt.show() 上面一段代码的运行结果如下: image.png 3.第三大题 3.1 第一步:导入相关模块 最后2行代码可以使作图时不出现编码错误,分别用来正常显示中文标签和正常显示负号。 import pandas as pd from pandas import Series,DataFrame import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 3.2 第二步:加载datasets下的tips.csv文件数据,并显示前五行记录 csv文件默认的分隔符是逗号,pd.read_csv方法中sep关键字参数的默认值也为逗号,所以可以不写sep关键字。 显示前五行数据用chipo.head()即可。 tip_df = pd.read_csv('datasets/tips.csv') tip_df.head() 3.3 第三步:绘制消费金额频率分布直方图 plt.hist方法中参数bins用来指定出现多少根柱子,参数width用来指定每根柱子的宽度。 plt.hist(tip_df.total_bill, bins=10, width=4) plt.xlabel('消费总金额') plt.ylabel('频率') plt.show() 上面一段代码的运行结果如下图所示: 直方图.png 3.4 第四步:绘制总消费金额与小费金额的散点图关系 利用plt.scatter方法画出散点图 plt.scatter(tip_df.total_bill, tip_df.tip) plt.xlabel('总消费金额') plt.ylabel('小费金额') plt.show() 上面一段代码的运行结果如下: 散点图.png 3.5 第五步:在同一图中绘制出吸烟顾客与不吸烟顾客的消费金额与小费之间的散点图关系 观察示例答案中左右两幅图,不同的地方有:处于画板的位置、标题、散点颜色。 定义函数drawScatter用于绘制散点图,传入4个参数:数据group、处于画板的位置subplot、标题title、散点颜色。 def drawScatter(group, subplot, title, color): plt.subplot(subplot) plt.xlabel('消费总金额') plt.ylabel('小费金额') plt.title(title) plt.scatter(group.total_bill, group.tip, color=color) plt.figure(figsize=(12,6)) for name,group in tip_df.groupby('smoker'): if name == 'Yes': drawScatter(group, 121, '吸烟顾客', 'green') else: drawScatter(group, 122, '不吸烟顾客', 'blue') plt.show() 上面一段代码的运行结果如下: 组合散点图.png 3.6 第六步:在同一图中绘制出女性与男性中吸烟与不吸烟顾客的消费金额与小费之间的散点图关系 在有2组散点的散点图当中,第1组散点默认为橘黄色,第2组散点默认为天蓝色。 def drawScatter2(df, subplot, title, sex): plt.subplot(subplot) plt.title(title) for name, group in df.groupby('smoker'): if name == 'Yes': plt.scatter(group.total_bill, group.tip, label=sex+'吸烟顾客') else: plt.scatter(group.total_bill, group.tip, label=sex+'不吸烟顾客') plt.legend() plt.figure(figsize=(12,6)) for name,group in tip_df.groupby('sex'): if name == 'Male': drawScatter2(group, 121, 'sex=Male', '男性') else: drawScatter2(group, 122, 'sex=Female', '女性') plt.show() 上面一段代码的运行结果如下图所示: 组合散点图.png 4.第四大题 4.1 第一步:导入相应的模块 import os import re import numpy as np import pandas as pd from bs4 import BeautifulSoup 4.2 第二步:读取nlp文件夹下的labeledTraniData.tsv文件 df = pd.read_csv("nlp/labeledTrainData.tsv", sep='\t', escapechar='\\') print('记录数: {}'.format(len(df))) df.head() 4.3 第三步:请按如下步骤,对影评数据做预处理,大概有以下环节: 去掉html标签 移除标点 切分成单词列表 去掉停用词 重组为新的句子 def display(text, title): print(title) print("\n----------我是分割线-------------\n") print(text) 4.4 第四步:提取出原始数据中的第一行review列中的文本数据,并用display函数进行输出显示 text1 = df.iloc[1]['review'] display(text1, '原始数据') 4.5 第五步:用BeautifulSoup将第四步中获取到的数据中的html标签去除 text2 = BeautifulSoup(text1, 'lxml').text display(text2, '去掉HTML标签的数据') 4.6 第六步:将第五步数据中的标点符号去掉(用正则) text3 = re.sub('[^\w\s]', '',text2) display(text3, '去掉标点的数据') 4.7 第七步:将第六步的数据全部转换成小写并转换成列表 text4 = text3.lower() word_list = text4.split(' ') display(word_list, '纯词列表数据') 4.8 第八步:去掉第七步数据中的英文停用词 4.8.1 加载英文停用词 with open('nlp/stopwords.txt') as file: stopword_list = [k.strip() for k in file.readlines()] 4.8.2 利用加载的英文停用词,去除第七部数据中的英文停用词 new_word_list = [k for k in word_list if k not in stopword_list] display(new_word_list, '去掉停用词数据') 4.8.3 为确保所加载的英文停用词没有重复数据,请对8-1中加载的英文停用词去重 stopword_list = list(set(stopword_list)) 4.9 第九步:将第五步到第八步的过程总结归纳为一个函数,名为clean_text,参数为text即输入到函数中的文本 这个函数就是对前面零散步骤的总结,所以前面的大部分代码可以直接复制过来。 with open('nlp/stopwords.txt') as file: stopword_list = [k.strip() for k in file.readlines()] stopword_list = list(set(stopword_list)) def clean_text(text1): text2 = BeautifulSoup(text1, 'lxml').text text3 = re.sub('[^\w\s]', '',text2) text4 = text3.lower() word_list = text4.split(' ') new_word_list = [k for k in word_list if k not in stopword_list] return ' '.join(new_word_list) 4.10 第十步:用apply方法,将第九步中定义的函数应用到第二步加载的df中,并生成一列清洗之后的数据列,名为clean_review df['clean_review'] = df.review.apply(clean_text) df.head() 上面一段代码的运行结果如下图所示: 第4题最终结果.png 5.第五大题 5.1 第一步:导入相关模块 最后2行代码可以使作图时不出现编码错误,分别用来正常显示中文标签和正常显示负号。 import pandas as pd from pandas import Series,DataFrame import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False #用来正常显示负号 5.2 第二步:加载datasets目录下US_Baby_names_right.csv文件数据并查看数据的基本信息 baby_df = pd.read_csv('datasets/US_Baby_names_right.csv') baby_df.info() 5.3 第三步:写出删除 Unname:0和Id列数据的两种方法,第二种注释即可 new_df = baby_df.drop(['Unnamed: 0', 'Id'], axis=1) # del baby_df['Unnamed: 0'] # del baby_df['Id'] new_df.head() 5.4 第四步:写出能够判断出数据集中男孩多还是女孩多的代码并给出结论 baby_df.Gender.value_counts() 5.5 第五步:按照Name字段将数据集进行分组并求和赋值给变量names,最后输出前五行 names = new_df.groupby('Name').sum() names.head() 5.6 第六步:按照每个名字被使用的次数(Count)对第五步中结果进行降序排序,得出最受欢迎的的五个名字 sorted_names = names.sort_values(by='Count', ascending=False) sorted_names.head() 5.7 第七步:在数据集中,共出现了多少个名字?(不包含重复项,至少使用两种方法) 第1种方法: len(baby_df.Name.unique()) 第2种方法: len(names) 第3种方法: baby_df.Name.value_counts().count() 5.8 第八步:出现次数最少的名字共有几个? min_count = sorted_names.iloc[-1]['Count'] len(names[names.Count == min_count]) 5.9 第九步:根据names变量中的数据,删除掉Year列数据后,得出如下所示的基本统计参数 names.drop('Year', axis=1).describe()

优秀的个人博客,低调大师

「翻转字符串」python之leetcode刷题|004

题目1 编写一个函数,其作用是将输入的字符串反转过来。 示例 1: 输入: "hello" 输出: "olleh" 示例 2: 输入: "A man, a plan, a canal: Panama" 输出: "amanaP :lanac a ,nalp a ,nam A" 解答 class Solution(object): def reverseString(self, s): """ :type s: str :rtype: str """ return s[::-1] 题目2 给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 解答 class Solution(object): def reverseWords(self, s): """ :type s: str :rtype: str """ l = [] for i in s.split(' '): s = i[::-1] l.append(s) return ' '.join(l) 主要用到了字符串分割,切片,连接方法。 当然也可以一行搞定 class Solution(object): def reverseWords(self, s): """ :type s: str :rtype: str """ return ' '.join([sub[::-1] for sub in s.split()]) 是不是很简洁。

优秀的个人博客,低调大师

python 将字符串转换成字典dict

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/81539013 JSON到字典转化: 》》》dictinfo = json.loads(json_str) 输出dict类型 字典到JSON转化: 》》》jsoninfo = json.dumps(dict)输出str类型 比如: info = {'name' : 'jay', 'sex' : 'male', 'age': 22} jsoninfo = simplejson.dumps(info) print jsoninfo Unicode到字典的转化: 》》》 json.loads() 比如: import json str = '{"params":{"id":222,"offset":0},{"nodename":"topic"}' params = json.loads(str) print params['params']['id']

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册