首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中搜索字典中的值

如何在python中搜索字典中的值
EN

Stack Overflow用户
提问于 2011-07-31 08:23:29
回答 3查看 205关注 0票数 2

我有一个很大的csv文件,格式如下:

CSV文件%1

代码语言:javascript
复制
id, person,   city
1,   John,     NY
2,   Lucy,    Miami
3,   Smith,   Los Angeles
4,   Mike,    Chicago
5,   David,   Los Angeles
6,   Daniel,    NY

在另一个CSV文件中,每个城市都有一个数字代码:

CSV文件2

代码语言:javascript
复制
city , code
NY   ,  100
Miami,  101
Los Angeles, 102
Chicago, 103

我需要做的是浏览城市列中的CSV文件1,读取城市名称,并从CSV文件2中获取该城市的数字代码。然后,我可以将城市代码列表输出到文本文件中。对于本例,我将获得以下结果:

代码语言:javascript
复制
100
101
102
103
102
100

我使用csv.DictReader为每个文件创建字典,但我无法找到一种将每个城市映射到每个代码的方法。

任何在正确方向上的想法或指针都将不胜感激!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-31 08:35:11

这里有一些额外的空格,与某些存储格式不同的是,CSV确实关心它。如果它确实在您的源数据中,那么在按照预期进行处理之前,您可能必须将其去掉(否则各个字段将具有前导空格和尾随空格)。

但是,假设空白消失了,这就相当简单了。您可以根据第二个文件的内容创建一个将名称映射到代码的字典。

代码语言:javascript
复制
from csv import DictReader

city_codes = {}
for row in DictReader(open('file2.csv', 'rb')):
    city_codes[row['city']] = row['code']

for row in DictReader(open('file1.csv', 'rb')):
    print city_codes[row['city']]

当然,只要像往常一样重定向print的输出,就可以将其发送到文本文件中。

票数 8
EN

Stack Overflow用户

发布于 2011-07-31 08:38:27

除了Jeremy的建议之外,您还可以使用字符串方法.strip()自动删除尾随空格和前导空格。

票数 2
EN

Stack Overflow用户

发布于 2011-07-31 08:41:17

考虑使用sqlite3。然后,您可以进行高效、简单和强大的连接。如果文件真的很大,您可以从创建适当的索引中受益。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6886757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档