df = pd.read_excel('readers.xlsx') readers=df.to_dict('index') print("序号 编号 姓名 \t性别 \t出生日期\t\t 手机号\t 读者类别") count = 0 for reader in readers: count += 1 print("{}\t{}\t{}\t{}\t{}\t{}\t {}".format(count, reader["id"], reader["name"], reader["gender"], reader["age"], reader["iphone"], reader["type"])) 哪里出错了
时间: 2023-07-05 13:20:43 浏览: 85
根据你的代码,可能出现错误的原因有以下几个:
1. `readers` 变量中的键名和键值可能不是你期望的类型。`pd.read_excel` 函数返回的是一个 `DataFrame` 对象,通过调用 `to_dict` 方法可以将其转换为字典,但是转换后的字典中键名和键值的类型可能不是你期望的类型。可以尝试使用 `readers = df.to_dict(orient='records')` 将 DataFrame 转换为字典列表,这样可以确保键名为字符串类型,键值为对应的值类型。
2. `reader` 变量可能是一个整数类型的对象,而不是一个字典类型的对象。在遍历 `readers` 列表时,应该使用 `for reader in readers:` 的方式来遍历,这样每次迭代得到的 `reader` 变量应该是一个字典类型的对象。可以尝试添加调试代码,查看 `reader` 变量的类型,例如:`print(type(reader))`。
综上所述,下面是一个可能修正后的代码示例:
```python
import pandas as pd
df = pd.read_excel('readers.xlsx')
readers = df.to_dict(orient='records')
print("序号 编号 姓名 \t性别 \t出生日期\t\t 手机号\t 读者类别")
count = 0
for reader in readers:
count += 1
print("{}\t{}\t{}\t{}\t{}\t{}\t {}".format(count, reader["id"], reader["name"], reader["gender"], reader["age"], reader["iphone"], reader["type"]))
```
如果还有问题,可以提供具体的错误信息或者完整的代码,方便我进行排查。
阅读全文