python全唐诗json文件基于作者姓名检索--以李白为例
python全唐诗json文件基于作者姓名检索--以李白为例
- 文件来源
- 单个文本分析
- 对全唐诗json文件进行整体分析
- 全部代码展示
因为是边做边写的博客,文中我发现我的文学水平急待加强!
全唐诗竟然是按作者编卷的,那我做的意义在哪里???
写到一半,又不忍心删了,罢了罢了,哎~
文件来源
chinese-poetry
GitHub链接:https://github.com/chinese-poetry/chinese-poetry
单个文本分析
读取单个文本
import json
path="001.json"
f=open(path,'r',encoding='utf-8')
m=json.load(f)print(m)
- 此处导入了json库,方便对json文件进行读取
- json.load函数将json文件转化为了python可识别的字典类型
- 注意:此处encoding需要明确,不然容易报错
结果展示,内容过长,仅显示一例
[{'title': '帝京篇十首', 'author': '李世民', 'biography': '帝姓李氏,諱世民,神堯次子,聰明英武。貞觀之治,庶幾成康,功德兼隆。由漢以來,未之有也。而銳情經術,初建秦邸,即開文學館,召名儒十八人爲學士。既即位,殿左置弘文館,悉引內學士,番宿更休。聽朝之間,則與討論典籍,雜以文詠。或日昃夜艾,未嘗少怠。詩筆草隸,卓越前古。至於天文秀發,沈麗高朗,有唐三百年風雅之盛,帝實有以啓之焉。在位二十四年,諡曰文。集四十卷。館閣書目,詩一卷,六十九首。今編詩一卷。', 'paragraphs': ['秦川雄帝宅,函谷壯皇居。綺殿千尋起,離宮百雉餘。', '連薨遙接漢,飛觀迥淩虛。雲日隱層闕,風煙出綺疏。', '岩廊罷機務,崇文聊駐輦。玉匣啟龍圖,金繩披鳳篆。', '韋編斷仍續,縹帙舒還卷。對此乃淹留,欹案觀墳典。', '移步出詞林,停輿欣武宴。雕弓寫明月,駿馬疑流電。', '驚雁落虛弦,啼猿悲急箭。閱賞誠多美,於茲乃忘倦。', '鳴笳臨樂館,眺聽歡芳節。急管韻朱弦,清歌凝白雪。', '彩鳳肅來儀,玄鶴紛成列。去茲鄭衛聲,雅音方可悅。', '芳辰追逸趣,禁苑信多奇。橋形通漢上,峰勢接雲危。', '煙霞交隱映,花鳥自參差。何如肆轍跡,萬里賞瑤池。', '飛蓋去芳園,蘭橈遊翠渚。萍間日彩亂,荷處香風舉。', '桂楫滿中川,弦歌振長嶼。豈必汾河曲,方為歡宴所。', '落日雙闕昏,回輿九重暮。長煙散初碧,皎月澄輕素。', '搴幌玩琴書,開軒引雲霧。斜漢耿層閣,清風搖玉樹。', '歡樂難再逢,芳辰良可惜。玉酒泛雲罍,蘭殽陳綺席。', '千鐘合堯禹,百獸諧金石。得志重寸陰,忘懷輕尺璧。', '建章歡賞夕,二八盡妖妍。羅綺昭陽殿,芬芳玳瑁筵。', '佩移星正動,扇掩月初圓。無勞上懸圃,即此對神仙。', '以茲遊觀極,悠然獨長想。披卷覽前蹤,撫躬尋既往。', '望古茅茨約,瞻今蘭殿廣。人道惡高危,虛心戒盈蕩。', '奉天竭誠敬,臨民思惠養。納善察忠諫,明科慎刑賞。', '六五誠難繼,四三非易仰。廣待淳化敷,方嗣雲亭響。'], 'notes': [''], 'volume': '卷一', 'no#': 1}
本文需要对姓名为李白的诗人所写的诗歌进行筛选
for item in m:if item["author"]=="李白":print(item["paragraphs"])
此处使用for循环,将每一条字典抽取出来,之后按照索引,把李白的诗歌提取
对全唐诗json文件进行整体分析
此处有几个小问题需要注意:
- 用for循环需要将数字转化为三位数的字符串,如将1变为001
- 注意在最前面添加for循环时的缩进问题
- 需要使用字符串添加,将“001”改变为“001.json”
代码展示
for i in range(900):num=str(i+1).zfill(3)path=numpath+=".json"
结果展示
['三十六離宮,樓臺與天通。閣道步行月,美人愁煙空。', '恩疏寵不及,桃李傷春風。淫樂意何極,金輿向回中。', '萬乘出黃道,千旗揚彩虹。前軍細柳北,後騎甘泉東。', '豈問渭川老,寧邀襄野童。秋暮瑤池宴,歸來樂未窮。']
此处有方括号不太利于我们以后对于诗歌进行文本分析
本文此处对代码稍加改变下
原先代码
print(item["paragraphs"])
现在代码
print(",".join(item["paragraphs"]))
结果展示
三十六離宮,樓臺與天通。閣道步行月,美人愁煙空。,恩疏寵不及,桃李傷春風。淫樂意何極,金輿向回中。,萬乘出黃道,千旗揚彩虹。前軍細柳北,後騎甘泉東。,豈問渭川老,寧邀襄野童。秋暮瑤池宴,歸來樂未窮。
将这些结果全部放入一个txt文件中
with open("libai.txt", "a") as f:f.write("\n"+"《"+item["title"]+"》"+" "+",".join(item["paragraphs"]))
这里呢,再一次劝告兄弟们好好读书,不然写程序总在奇奇怪怪的地方浪费时间(lll¬ω¬)
《樂府雜曲:鼓吹曲辭:上之回》
我一直以为这个是乱码,调试了好半天/(ㄒoㄒ)/~~
全部代码展示
import json
for i in range(900):num=str(i+1).zfill(3)path=numpath+=".json"f=open(path,'r',encoding='utf-8')m=json.load(f)for item in m:if item["author"]=="李白":with open("libai.txt", "a") as f:f.write("\n"+"《"+item["title"]+"》"+" "+",".join(item["paragraphs"]))print("\n"+item["title"],",".join(item["paragraphs"]))
就这样愉快的结束吧!
python全唐诗json文件基于作者姓名检索--以李白为例相关推荐
- python读json文件中不同的数据类型_怎么使用python提取json文件中的字段
python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...
- json 插入数据_让繁琐的工作自动化——python处理JSON文件
让繁琐的工作自动化--python处理JSON文件 不得不说,python真TMD香.由于python解析json过于简洁,我只好写个实例了,不然文章太短. 1.环境 python3.8 pychar ...
- python处理json文件操作
目录 JSON文件基本介绍 JSON的规则 python读取json文件的方式 使用json文件的例子 注意问题 JSON文件基本介绍 JSON:一种与开发语言无关的.轻量级的数据存储格式,全称Jav ...
- python读取中文文件乱码-详解Python的json文件读取及中文乱码显示问题解决方法...
Python的json文件读取及解决中文乱码显示问题 本文实例讲述了Python实现的json文件读取及中文乱码显示问题解决方法.分享给大家供大家参考,具体如下: city.json文件的内容如下: ...
- python在json文件中查找指定数据_Python中json的取值 如何使用python提取json中指定字段的数据...
python中为什么用json有什么作用 如何用python读取json里面的值啊我爱你,所以我给了你伤害我的权力,只要我能忍受,我会一直陪伴着你,但你不能伤害我太多. 数据如下,我想要读取name. ...
- PYTHON 处理JSON文件(新建key值Findex,并将歌手名字转换为大写首字母作为value值)
@PYTHON 处理JSON文件(新建key值Findex,并将歌手名字转换为大写首字母作为value值) 引入了第三方库 pypinyin 代码如下: import json import pypi ...
- python:json文件的保存与读取
介绍 json(JavaScript Object Notation, Java 脚本对象表示符)是一种特殊的数据格式,具有以下优点. (1)该数据格式独立于脚本语言(如c++,python,matl ...
- python修改json文件_python修改json文件的value实例方法
利用python修改json文件的value方法 做工程时遇到需要监听json文件,根据json文件中的key-value值作出相应处理的情形.为此写了修改json文件的python脚本供工程后续调用 ...
- Python解析json文件
Python解析json文件 实现代码 import json import sysstdout = sys.stdoutwith open("company.json", &qu ...
最新文章
- 2019最新版本的PanDownload纯净版,网盘满速下载和搜索神器,追剧和动漫新番必不可少的下载工具【亲测有效】
- jquery获取一个table中的一行的每个td的内容
- 【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--参数自动映射篇(6/8)...
- 西瓜书+实战+吴恩达机器学习(十四)无监督学习之聚类(k-means, LVQ, 高斯混合聚类, DBSCAN, AGNES)
- Django简单介绍-基础1
- php如何查看openssl扩展安装成功,php如何安装openssl扩展
- Ubuntu 12.04 LTS 键盘快捷键(转)
- ARX二次开发 遍历删除所有的约束
- 数值计算——追赶法求解三对角方程组(附代码)
- 基础篇——树莓派通用引脚定义
- 计算机毕业论文选题管理系统的设计与实现
- win10删除微软拼音
- Rietveld, or “How to revamp your code review process”
- java java -cp_java -cp用法
- 富有哲理的10则故事(必读经典)
- 【论文基本功】【LaTeX】公式及其编号
- Icon图标制作(转化)工具
- 715. Range Module
- 算法设计课第十周作业
- 学术论文rebuttal
热门文章
- ShaderJoy —— 烟花爆炸特效【GLSL】
- oracle备份数据库dmp定时,SCO Unix系统下定时备份Oracle数据库dmp文件的设置
- STEP7 V5.5 SP4 HF1 + WINCC7.2 + PLCSIM V5.4 SP5工程项目如何进行PLC程序和WINCC画面仿真运行
- 嘻哈说:设计模式之单一职责原则
- AForge学习笔记(5):AForge.Imaging(上)
- 在win10中安装并配置多个JDK不同的版本
- 谈谈Android 6.0 的动态权限管理
- 阿里巴巴技术部面试题——经典智力问题收集
- 整除java符号_Java运算符
- Python数据分析 ---- ARMA模型