2个嵌套for循环、2个变量(1个来自csv)和意外结果

2024-10-08 22:30:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在想为什么这个for循环不会产生预期的结果——因为它们是1个匹配的条目,生成一个“yes”输出。有人能帮我指出错误吗?我要导入的csv有7列和17000行。“alle”也从csv导入到包含4个元素的列表中,每个元素都是包含6个元素的列表。我正在使用Python2.7&我意识到我打开的库比我需要的要多,但是我是新的&在发布之前不想删除任何可能破坏代码的库。你知道吗

“alle”元素看起来像:

['Danlaw Inc',  'Applications Engineer',  'Novi, MI', 'http://www.indeed.com/rc/clk?jk=e199589101464b99',  'Novi',  'MI']

csv文件的行如下所示:

['4318055', 'Brownsville', 'LA', 'Brownsville, LA', '32.48709', '-92.1543', '4317']

这是我的密码:

import math
import csv
import urllib2
from urllib2 import urlopen
import json
from json import load 
import requests
from pprint import pprint
from time import sleep

f = open(r'C:\Users\****\*****\Python\Best City Pop Long Lat Data\UScities1000_Trimmed_Full_NoHeader.csv', "rb")
csv_f1 = csv.reader(f)

for a in alle:
    for e in csv_f1:
        if a[2] == e[3]:
            print ('yes')

我已经确认两个列表都有匹配的条目(这是一个城市和州-“Novi,MI”),但是当我运行代码时,我没有得到任何“yes”作为输出。有什么想法吗?谢谢您!你知道吗

更新:

下面是我如何附加“alle”csv list变量,我认为这是导致问题的原因:

def splitter(element):
    city,state=element.split(', ',1)
    return city, state

#   >>>>>  Assign variable to input city

#cities = []
#location = []



for e in alle:
    if ', ' in e[2]:
        city,state = splitter(e[2])
        #location = [[city],[state]]
        #e.append(location)
        e.append(city)
        e.append(state)

Tags: csvinfromimport元素city列表for
1条回答
网友
1楼 · 发布于 2024-10-08 22:30:15

好吧,我想出来了。我从csv文件读取数据到list变量的方式是罪魁祸首——尽管我不知道确切的原因。但是,以下工作:

alle=[]

with open(r'C:\Users\****\******\Recruiting Business\Proximity Project\AllDailyCIJobs 26thJan10_12-30daysNoHeader.csv', "r+b") as f:
    reader = csv.reader(f)
    for row in reader:
        alle.append(row)

这是我之前尝试使用的:

f = open(r'C:\Users\****\******\Recruiting Business\Proximity Project\AllDailyCIJobs 26thJan10_12-30daysNoHeader.csv', "rb")

alle = csv.reader(f)

相关问题 更多 >

    热门问题