复制and粘贴?Python脚本1分钟解决了我1小时的事!
【摘要】 自动化办公,提前1小时下班!
1.提出需求
这是群里面一位朋友提出来的一个问题。具体需求是怎么样的呢?有这样一个word文档,里面有一个hin长hin长的json字符串格式
的数据。朋友想做的就是提取word文档里json数据中的content和option后面的内容。
2.原始数据预览
仔细观察下面的数据。一眼看过去是不是一团糟的样子?这只是其中一部分,如果让你一个个复制粘贴,你受得了吗?如果有更多个word,你是否也准备一个个复制、粘贴呢?
3.解决问题
我的思路是这样的:首先是读取word文档里面的内容,虽然这里只提供一个word文档,你可以直接复制出来,假如有多个这样的word文档呢?接着,利用json.loads()将json字符串
转换为json字典格式
数据。最后我们利用python字典的特性获取我们想要的信息。
from docx import Document
import re
import pandas as pd
import json
# 1.读取word文档,获取word文档里面的内容
x = ""
doc = Document(r"G:\1Pycharm_Project\3572(1).docx")
for paragraph in doc.paragraphs:
text = paragraph.text
# 读取word里面的内容有一个特点:每一页会返回一个字符串,共3页,一共返回了3个单独的字符串。
# 但是这是一个完整的json字符串,我们不能将他分开呀。因此,使用字符串拼接,将其合并起来。
x += text
# 2.使用json.loads()将json字符串 转换为 字典格式的数据。
r = json.loads(x)
# 3.对于字典,我们可以利用键,获取里面的值。
x = []
z = []
for i in r["data"]["ques"]:
x.append(i["content"])
y = ""
for j in i["options"]:
y += j["answer"] + " " + j["option"]
y += ";"
z.append(y)
# 4.将获取到的数据,保存成一个DataFrame格式的数据,并导出为excel表格。
data = {"content":x,"options":z}
df = pd.DataFrame(data)
display(df)
df.to_excel("text.xlsx")
结果如下:
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)