(2) a.将Python程序设计实验课班内序号表.xlsx另存为CSV文件,注意存储的编码为UTF-8。编程读入该文件,转换成JSON格式文件,并以文件名“班内序号.json”输出。[注意:为了简化设计,excel表有标题行时,可以先删除标题行后进行存储为csv格式] b.编程读入“班内序号.json”,并屏幕输出和自己班内序号邻近的5名同学的班内学号、姓名和学号。
时间: 2023-06-12 09:06:31 浏览: 216
a. 实现代码如下:
```python
import csv
import json
# 读取CSV文件
with open('Python程序设计实验课班内序号表.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
rows = list(reader)
# 删除标题行
del rows[0]
# 转换成JSON格式并输出到文件
json_data = []
for row in rows:
json_data.append({'学号': row[0], '姓名': row[1], '班内序号': row[2]})
with open('班内序号.json', 'w', encoding='utf-8') as f:
json.dump(json_data, f, ensure_ascii=False)
```
b. 实现代码如下:
```python
import json
# 读取JSON文件
with open('班内序号.json', 'r', encoding='utf-8') as f:
json_data = json.load(f)
# 获取自己的班内序号
my_num = int(input('请输入自己的班内序号:'))
# 查找邻近的5名同学
neighbors = []
for i, data in enumerate(json_data):
if abs(int(data['班内序号']) - my_num) <= 2 and int(data['班内序号']) != my_num:
neighbors.append(data)
if len(neighbors) == 5:
break
# 输出邻近的5名同学的信息
print('邻近的5名同学的信息如下:')
for neighbor in neighbors:
print('学号:{},姓名:{},班内序号:{}'.format(neighbor['学号'], neighbor['姓名'], neighbor['班内序号']))
```
注意:在读取CSV文件时,需要注意文件的编码是否正确。在转换成JSON格式并输出到文件时,需要设置`ensure_ascii=False`,否则输出的中文可能会出现乱码。在查找邻近的5名同学时,假设邻近的同学的班内序号与自己的班内序号差值不超过2。
阅读全文