我在这里有一个问题,我希望有些善良的人会帮忙回答!
我有一个.csv文件,标题中有三个项目,并且分配了很多项目。印刷时.csv看起来像这样:
['NUTS CODE', 'NUTS NAME', 'Change 2008-2014']
['AT11', 'Burgenland (AT)', '0.6']
['AT12', 'Niederosterreich', '1.4']
['AT13', 'Wien', '2.9']
['AT21', 'Karnten', '2.4']
['AT22', 'Steiermark', '1.1']
['AT31', 'Oberosterreich', '1.3']
['AT32', 'Salzburg', '0.7']
['AT33', 'Tirol', '0.6']
['AT34', 'Vorarlberg', '-0.7']
['BE10', 'Region de Bruxelles-Capitale / Brussels Hoofdstedelijk Gewest', '2.4']
['BE21', 'Prov. Antwerpen', '1.5']
['BE22', 'Prov. Limburg (BE)', '1.2']
['BE23', 'Prov. Oost-Vlaanderen', '0.7']
['BE24', 'Prov. Vlaams-Brabant', '0.8']
['BE25', 'Prov. West-Vlaanderen', '1.5']
我想创建一个程序,它接受用户输入,其中输入与第一个值相关,比如我输入:“AT”,然后程序返回与该代码相关的所有相应名称和值。示例:如果我输入“BE”,代码将创建以下列表:
[["BE10", "Region de Bruxelles-Capitale / Brussels Hoofdstedelijk Gewest", 2.4], [BE21', 'Prov. Antwerpen', '1.5']]
等。
这是我用来打开的:
import csv
with open ('Change_in_Unemployment_2008-2014.csv') as csvfile:
readCSV = csv.reader(csvfile, delimiter=',')
#next(readCSV) #Uncomment to remove header
for row in readCSV:
print(row)
csvfile.close()
答案 0 :(得分:0)
@Bean
@Transformer(inputChannel = "routingSlipHeaderChannel", outputChannel = "processChannel")
public HeaderEnricher headerEnricher() {
return new HeaderEnricher(Collections.singletonMap(IntegrationMessageHeaderAccessor.ROUTING_SLIP,
new RoutingSlipHeaderValueMessageProcessor(routeStrategy())));
}
答案 1 :(得分:0)
上面的答案几乎是正确的,只需要两个修复。您必须跳过标题行,因为这是您的列标签,并且最好使用raw_input来获取用户输入,因为输入被解释为python代码。
strInput = input("Please enter a full/partial NUTS code to filter by:")
然后按如下方式修改for循环:
header = True
for row in readCSV:
if header = True:
print row
header = False
continue
if row[0].startswith(strInput):
print (row)