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)
  1. 此处导入了json库,方便对json文件进行读取
  2. json.load函数将json文件转化为了python可识别的字典类型
  3. 注意:此处encoding需要明确,不然容易报错

结果展示,内容过长,仅显示一例

[{'title': '帝京篇十首', 'author': '李世民', 'biography': '帝姓李氏,諱世民,神堯次子,聰明英武。貞觀之治,庶幾成康,功德兼隆。由漢以來,未之有也。而銳情經術,初建秦邸,即開文學館,召名儒十八人爲學士。既即位,殿左置弘文館,悉引內學士,番宿更休。聽朝之間,則與討論典籍,雜以文詠。或日昃夜艾,未嘗少怠。詩筆草隸,卓越前古。至於天文秀發,沈麗高朗,有唐三百年風雅之盛,帝實有以啓之焉。在位二十四年,諡曰文。集四十卷。館閣書目,詩一卷,六十九首。今編詩一卷。', 'paragraphs': ['秦川雄帝宅,函谷壯皇居。綺殿千尋起,離宮百雉餘。', '連薨遙接漢,飛觀迥淩虛。雲日隱層闕,風煙出綺疏。', '岩廊罷機務,崇文聊駐輦。玉匣啟龍圖,金繩披鳳篆。', '韋編斷仍續,縹帙舒還卷。對此乃淹留,欹案觀墳典。', '移步出詞林,停輿欣武宴。雕弓寫明月,駿馬疑流電。', '驚雁落虛弦,啼猿悲急箭。閱賞誠多美,於茲乃忘倦。', '鳴笳臨樂館,眺聽歡芳節。急管韻朱弦,清歌凝白雪。', '彩鳳肅來儀,玄鶴紛成列。去茲鄭衛聲,雅音方可悅。', '芳辰追逸趣,禁苑信多奇。橋形通漢上,峰勢接雲危。', '煙霞交隱映,花鳥自參差。何如肆轍跡,萬里賞瑤池。', '飛蓋去芳園,蘭橈遊翠渚。萍間日彩亂,荷處香風舉。', '桂楫滿中川,弦歌振長嶼。豈必汾河曲,方為歡宴所。', '落日雙闕昏,回輿九重暮。長煙散初碧,皎月澄輕素。', '搴幌玩琴書,開軒引雲霧。斜漢耿層閣,清風搖玉樹。', '歡樂難再逢,芳辰良可惜。玉酒泛雲罍,蘭殽陳綺席。', '千鐘合堯禹,百獸諧金石。得志重寸陰,忘懷輕尺璧。', '建章歡賞夕,二八盡妖妍。羅綺昭陽殿,芬芳玳瑁筵。', '佩移星正動,扇掩月初圓。無勞上懸圃,即此對神仙。', '以茲遊觀極,悠然獨長想。披卷覽前蹤,撫躬尋既往。', '望古茅茨約,瞻今蘭殿廣。人道惡高危,虛心戒盈蕩。', '奉天竭誠敬,臨民思惠養。納善察忠諫,明科慎刑賞。', '六五誠難繼,四三非易仰。廣待淳化敷,方嗣雲亭響。'], 'notes': [''], 'volume': '卷一', 'no#': 1}

本文需要对姓名为李白的诗人所写的诗歌进行筛选

for item in m:if item["author"]=="李白":print(item["paragraphs"])

此处使用for循环,将每一条字典抽取出来,之后按照索引,把李白的诗歌提取

对全唐诗json文件进行整体分析

此处有几个小问题需要注意:

  1. 用for循环需要将数字转化为三位数的字符串,如将1变为001
  2. 注意在最前面添加for循环时的缩进问题
  3. 需要使用字符串添加,将“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文件基于作者姓名检索--以李白为例相关推荐

  1. python读json文件中不同的数据类型_怎么使用python提取json文件中的字段

    python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...

  2. json 插入数据_让繁琐的工作自动化——python处理JSON文件

    让繁琐的工作自动化--python处理JSON文件 不得不说,python真TMD香.由于python解析json过于简洁,我只好写个实例了,不然文章太短. 1.环境 python3.8 pychar ...

  3. python处理json文件操作

    目录 JSON文件基本介绍 JSON的规则 python读取json文件的方式 使用json文件的例子 注意问题 JSON文件基本介绍 JSON:一种与开发语言无关的.轻量级的数据存储格式,全称Jav ...

  4. python读取中文文件乱码-详解Python的json文件读取及中文乱码显示问题解决方法...

    Python的json文件读取及解决中文乱码显示问题 本文实例讲述了Python实现的json文件读取及中文乱码显示问题解决方法.分享给大家供大家参考,具体如下: city.json文件的内容如下: ...

  5. python在json文件中查找指定数据_Python中json的取值 如何使用python提取json中指定字段的数据...

    python中为什么用json有什么作用 如何用python读取json里面的值啊我爱你,所以我给了你伤害我的权力,只要我能忍受,我会一直陪伴着你,但你不能伤害我太多. 数据如下,我想要读取name. ...

  6. PYTHON 处理JSON文件(新建key值Findex,并将歌手名字转换为大写首字母作为value值)

    @PYTHON 处理JSON文件(新建key值Findex,并将歌手名字转换为大写首字母作为value值) 引入了第三方库 pypinyin 代码如下: import json import pypi ...

  7. python:json文件的保存与读取

    介绍 json(JavaScript Object Notation, Java 脚本对象表示符)是一种特殊的数据格式,具有以下优点. (1)该数据格式独立于脚本语言(如c++,python,matl ...

  8. python修改json文件_python修改json文件的value实例方法

    利用python修改json文件的value方法 做工程时遇到需要监听json文件,根据json文件中的key-value值作出相应处理的情形.为此写了修改json文件的python脚本供工程后续调用 ...

  9. Python解析json文件

    Python解析json文件 实现代码 import json import sysstdout = sys.stdoutwith open("company.json", &qu ...

最新文章

  1. 2019最新版本的PanDownload纯净版,网盘满速下载和搜索神器,追剧和动漫新番必不可少的下载工具【亲测有效】
  2. jquery获取一个table中的一行的每个td的内容
  3. 【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--参数自动映射篇(6/8)...
  4. 西瓜书+实战+吴恩达机器学习(十四)无监督学习之聚类(k-means, LVQ, 高斯混合聚类, DBSCAN, AGNES)
  5. Django简单介绍-基础1
  6. php如何查看openssl扩展安装成功,php如何安装openssl扩展
  7. Ubuntu 12.04 LTS 键盘快捷键(转)
  8. ARX二次开发 遍历删除所有的约束
  9. 数值计算——追赶法求解三对角方程组(附代码)
  10. 基础篇——树莓派通用引脚定义
  11. 计算机毕业论文选题管理系统的设计与实现
  12. win10删除微软拼音
  13. Rietveld, or “How to revamp your code review process”
  14. java java -cp_java -cp用法
  15. 富有哲理的10则故事(必读经典)
  16. 【论文基本功】【LaTeX】公式及其编号
  17. Icon图标制作(转化)工具
  18. 715. Range Module
  19. 算法设计课第十周作业
  20. 学术论文rebuttal

热门文章

  1. ShaderJoy —— 烟花爆炸特效【GLSL】
  2. oracle备份数据库dmp定时,SCO Unix系统下定时备份Oracle数据库dmp文件的设置
  3. STEP7 V5.5 SP4 HF1 + WINCC7.2 + PLCSIM V5.4 SP5工程项目如何进行PLC程序和WINCC画面仿真运行
  4. 嘻哈说:设计模式之单一职责原则
  5. AForge学习笔记(5):AForge.Imaging(上)
  6. 在win10中安装并配置多个JDK不同的版本
  7. 谈谈Android 6.0 的动态权限管理
  8. 阿里巴巴技术部面试题——经典智力问题收集
  9. 整除java符号_Java运算符
  10. Python数据分析 ---- ARMA模型