复制and粘贴?Python脚本1分钟解决了我1小时的事!

举报
数据分析与统计学之美 发表于 2021/08/04 18:43:18 2021/08/04
【摘要】 自动化办公,提前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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。