首页 新闻 会员 周边 捐助

数据存入json再读出来就不一样了,列表里的字典就不是字典了

0
[待解决问题]

import json
import xlwings as xw
import docx
app = xw.App() # 新打开一个进程

禁用提示和屏幕刷新可以提升速度,操作完成后记得设置为True

app.display_alerts = False
app.screen_updating = False

路径 前边加r表示绝对路径

path = r"路径\123.xls"

#打开已有excel

app = xw.App(visible=False, add_book=False)
wb = app.books.open(path)
sheet = wb.sheets[0]

更好的方式是通过last_cell方式获取最下边且最右边的一个单元格。

last_cell = sheet.used_range.last_cell
last_row = last_cell.row
last_col = last_cell.column

data = []

dict1 = {"题目:":"",

"选项1":"",

"选项2":"",

"选项3":"",

"选项4":"",

"答案":""

}

for i in range(last_row):
dict1 = {}
list1 = []
for j in range(last_col):
str1 = chr(65+j)
str2 =str(i+1)
cell = wb.sheets["sheet1"].range(str1+str2).value
list1.append(cell)
for n in range(6):
dict1[n] =list1[n]
data.append(dict1)

wb.close()
app.quit()

写入 JSON 数据

def writeTojson(data):
with open('data.json', 'w') as f:
json.dump(data, f)

读取数据

def readjson(ptah):
with open(ptah, 'r') as f:
data = json.load(f)
# print(data)
return data

writeTojson(data)

这里如果用读出json的数据 在下边dict2[j]这就出错 ,dict2就不是字典了,还用之前的data就可以

data = readjson(r"路径\data.json")

写入txt

str=""
for i in range(len(data)):
dict2 = {}
dict2 = data[i]
for j in range(len(dict2)):
str = str + "\n" + dict2[j]

with open("test.txt","w") as f:
f.write(str) # 自带文件关闭功能,不需要再写f.close()

写入word

doc = docx.Document()
doc.add_paragraph(str)

doc.save('test.docx')

幽灵lg的主页 幽灵lg | 菜鸟二级 | 园豆:202
提问于:2021-09-22 17:42
< >
分享
所有回答(1)
0

用 json.dumps 和 json.loads

ABeen | 园豆:251 (菜鸟二级) | 2021-11-04 18:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册