【发布时间】:2012-02-28 13:46:04
【问题描述】:
我意识到回答这个问题的信息可能已经在这里了,但是作为一个 python 新手,我已经尝试将这些信息拼凑几个星期了,但我遇到了一些麻烦。
这个问题Python "join" function like unix "join" 回答了如何轻松地在两个列表上进行连接,但问题是 dictreader 对象是可迭代的而不是简单的列表,这意味着增加了一层复杂性。
我基本上是在使用 dictreader 对象寻找两个 CSV 文件的内部连接。这是我到目前为止的代码:
def test(dictreader1, dictreader2):
matchedlist = []
for dictline1 in dictreader1:
for dictline2 in dictreader2:
if dictline1['member']=dictline2['member']:
matchedlist.append(dictline1, dictline2)
else: continue
return matchedlist
这在 if 语句中给了我一个错误,但更重要的是,我似乎无法在可迭代对象中访问字典的 ['member'] 元素,因为它说它没有属性“ getitem”。
有人对如何做到这一点有任何想法吗?作为参考,我需要将列表保留为可迭代对象,因为每个文件都太大而无法放入内存。计划是在另一个 for 循环中控制整个函数,一次只输入几行以进行迭代。因此它将读取左侧文件的一行,遍历整个第二个文件以找到匹配的成员字段,然后将这两行连接起来,类似于 SQL 连接语句。
提前感谢您的帮助,请原谅我的任何明显错误。
【问题讨论】: