我正在尝试比较JSON提取中的日期和CSV文件中的日期。 即使我打印两者,日期和类型相同,但比较总是说它们在没有时是不同的。 我已经尝试了很多东西,但没有任何效果。
线比较是
if (item_in["Data_Hora"].encode('utf-8')).strip <> Last_Date[1].strip:
这是完整的代码:
import json
import requests
import csv
import os
import itertools
def get_last_row(In_file):
with open(In_file,'rb') as f:
reader = csv.reader(f)
lastline = reader.next()
for line in reader:
lastline = line
print type (line)
return lastline
params = {
'api_key': 'tz-XmMtuYEVeeRjIdk6cqW1z',
}
r = requests.get(
'https://www.parsehub.com/api/v2/projects/tw5xOi-cVrMG-_vAZC_cX1QX/last_ready_run/data',
params=params)
json_object_in = r.content
data_in = json.loads(json_object_in)
for item_in in data_in["Estacao_Pluviometrica"]:
if item_in["Regiao"] != "Santa Felicidade": #Santa Felicidade possui duas Estações, excluida do processo enquanto não conseguir diferencia-las
# Altere abaixo com o diretório onde ficarão armazenados os arquivos "{diretório}/%s.csv"
Path = "/tmp/csv2/%s.csv" %item_in["Regiao"]
if os.path.isfile(Path): # Checa se já existe um arquivo para a região / Check if file already exist
OutFile = open(Path, 'a+')
Last_Date = get_last_row(Path)
# Check if last date is igual to actual - Error is here - comparison is always different even though data is the same.
if (item_in["Data_Hora"].encode('utf-8')).strip <> Last_Date[1].strip:
print "Nova entrada para %s" %item_in["Regiao"]
fieldnames = ["Regiao", "Data e Hora", "Chuva (mm)"]
CSVFile = csv.DictWriter (OutFile, fieldnames=fieldnames, delimiter=',', lineterminator = '\n')
CSVFile.writerow({"Regiao": item_in["Regiao"].encode('latin-1') , "Data e Hora": item_in["Data_Hora"] , "Chuva (mm)": item_in["Chuva_mm"]})
else: # When entry is the same as before
print "Entrada repetida para %s" %item_in["Regiao"]
OutFile.close()
else: #caso não exista, se cria um novo arquivo / In case there's no
print "Criando novo arquivo para regiao %s em %s." % (item_in["Regiao"], Path)
OutFile = open(Path, 'w')
fieldnames = ["Regiao", "Data e Hora", "Chuva (mm)"]
CSVFile = csv.DictWriter (OutFile, fieldnames=fieldnames, delimiter=',', lineterminator = '\n')
CSVFile.writeheader()
CSVFile.writerow({"Regiao": item_in["Regiao"].encode('latin-1') , "Data e Hora": item_in["Data_Hora"] , "Chuva (mm)": item_in["Chuva_mm"]})
OutFile.close()
我正在使用Python 2.7.10和IDLE 感谢。