python - 将 excel 或 csv 转换为列表或字典,或将 word doc 转换为 python 中的列表
问题描述
我希望我的最终结果是像下面这样的字典。
mydict = {0:'term1', 1:'term2',...'159:'term160'}
我有一个包含单列数据的 csv,在该列的单行的每个单元格中都有几个单词。
到目前为止,我在这里找到的任何建议都没有帮助。我最接近的是一个公式创建了多个有序字典,这些字典从我的单列创建了如下字典:
{['term1'], ['term2']}
{['term1'], ['term3']}
{['term1'], ['term4']}
所以,我没有这样做,而是想从列中创建一个列表。当使用下面的代码时,而不是得到类似的东西['term1', 'term2', 'term3',...'term160']
,我收到了[['term1'],['term2'],...['term160']]
,当与my_list2 = list(range(0, 160))
via结合时my_dict = dict.fromkeys(my_list_numbers, my_list_terms)
,打印出与整个范围匹配的每个数字的字典[['term1'],['term2'],...['term160']]
import csv
with open('filename.csv') as file:
reader = csv.reader(file)
data = list(reader)
print(data)
我只想要一个字典或一个可以变成字典的字符串列表,这样我就不必输入多个字典,每个字典都有 100 多对。我已经在谷歌上搜索和试验了一个多小时。我对代码比较陌生,但我觉得从 excel、csv、word 或文本文档中提取字符串列表应该不难。或者只是从我粘贴到单元格中的列表中格式化它,甚至。
任何帮助将不胜感激。
解决方案
假设文件 temp.csv 中的数据如下:
this_is_r1
this_is_r2
this_is_r3
this_is_r4
您可以将代码编写为:
import os
os.chdir("/home/username/Downloads")
res= dict()
with open("temp.csv", "r") as f:
for k,x in enumerate(f):
res[k] = x.replace("\n","")
print(res)
输出是:
{0: 'this_is_r1', 1: 'this_is_r2', 2: 'this_is_r3', 3: 'this_is_r4', 4: 'this_is_r5', 5: 'this_is_r6'}
正如 Miguel Trejo 所建议的,您还可以将字典理解用作:
with open("temp.csv", "r") as f:
res={k:x.replace("\n","") for k,x in enumerate(f)}
print(res)
推荐阅读
- django - 未在 django rest urls 中注册的视图
- python - pandas 字符串以列的值结尾,然后将字符串的开头转换为日期以进行比较
- repeat - Documentum DQL 通过重复属性连接
- laravel - 如何在 laravel 数据透视表附加字段中保存图像
- ios - 使用大标题时如何将导航标题左对齐?
- javascript - 测试反应 js 应用程序时 npm 测试失败
- javascript - 为什么 jQuery 采用原始 DOM 元素类,即使我用 jQuery 更改了它们?
- javascript - 除非调用 location.reload,否则无法取消设置 GET 参数
- solidity - 如何在 Solidity 中为函数设置默认参数
- android - 无法使用 AppBar 更改工具栏上的阴影