本文整理汇总了Python中csv.DictReader.next方法的典型用法代码示例。如果您正苦于以下问题:Python DictReader.next方法的具体用法?Python DictReader.next怎么用?Python DictReader.next使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类csv.DictReader
的用法示例。
在下文中一共展示了DictReader.next方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: upload_resources
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
def upload_resources(filename, skip=0, limit=None):
"""Upload from a CSV file."""
# Use sys.stdout.write so resources can be printed nicely and succinctly
import sys
date_converter = lambda s: datetime.strptime(s, '%Y-%m-%d')
bool_converter = lambda s: s == "true"
resource_schema = facility_schema['fields']
convert_map = {
'integer': int,
'float': float,
'datetime': date_converter,
'boolean': bool_converter
}
convert = {}
for k, v in resource_schema.items():
field_type = v.get('type')
if convert_map.has_key(field_type):
convert[k] = convert_map[field_type]
def print_flush(msg):
sys.stdout.write(msg)
sys.stdout.flush()
facility_code = facility_schema['facility_code']
print_every = 1000
print_flush("Adding resources. Please be patient.")
with open(filename) as f:
reader = DictReader(f)
for i in range(skip):
reader.next()
for i, d in enumerate(reader):
actual_index = i + skip + 2
do_print = actual_index % print_every == 0
try:
d = dict((k, convert.get(k, str)(v)) for k, v in d.items() if v)
coords = [d.pop('longitude', None), d.pop('latitude', None)]
if coords[0] and coords[1]:
d['location'] = {'type': 'Point', 'coordinates': coords}
d['facility_code'] = facility_code
if not check(add_document(facility_schema['endpoint'], d), 201, False):
raise Exception()
if do_print:
print_flush(".")
except Exception as e:
print "Error adding resource", e
pprint(d)
exit()
if limit and i >= limit:
break
# Create a 2dsphere index on the location field for geospatial queries
app.data.driver.db['resources'].create_index([('location', '2dsphere')])
print "Resources uploaded!"
示例2: upload_waterpoints
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
def upload_waterpoints(filename, skip=0, limit=None):
"""Upload waterpoints from a CSV file."""
date_converter = lambda s: datetime.strptime(s, '%Y-%m-%d')
bool_converter = lambda s: s == "true"
status_map = {
"non functional": "not functional",
"functional needs repair": "needs repair"
}
status_converter = lambda s: status_map.get(s.lower(), s.lower())
convert = {
'gid': int,
'object_id': int,
'valid_from': date_converter,
'valid_to': date_converter,
'amount_tsh': float,
'breakdown_year': int,
'date_recorded': date_converter,
'gps_height': float,
'latitude': float,
'longitude': float,
'num_private': int,
'region_code': int,
'district_code': int,
'population': int,
'public_meeting': bool_converter,
'construction_year': int,
'status_group': status_converter
}
facility_code = "wpf001"
with open(filename) as f:
reader = DictReader(f)
for i in range(skip):
reader.next()
for i, d in enumerate(reader):
print "Adding line", i + skip + 2
try:
d = dict((k, convert.get(k, str)(v)) for k, v in d.items() if v)
coords = [d.pop('longitude'), d.pop('latitude')]
d['location'] = {'type': 'Point', 'coordinates': coords}
d['facility_code'] = facility_code
if not check(add_document('waterpoints', d)):
raise Exception()
except Exception as e:
print "Error adding waterpoint", e
pprint(d)
exit()
if limit and i >= limit:
break
# Create a 2dsphere index on the location field for geospatial queries
app.data.driver.db['facilities'].create_index([('location', '2dsphere')])
示例3: __init__
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
def __init__(self, csv):
self.bag = Counter()
reader = DictReader(open(csv, 'r'), fieldnames=[
"TileFile", "Borders", "Quantity", "Features", "Notes"])
reader.next() # skip header, we've defined our own
for tile_dict in reader:
tile = Tile.from_csv(tile_dict)
quantity = int(tile_dict["Quantity"].strip())
self.bag[tile] = quantity
if "B" in tile_dict["Features"]:
self.first_tile = tile
示例4: test_subset_with_shapefile_no_ugid
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
def test_subset_with_shapefile_no_ugid(self):
"""Test a subset operation using a shapefile without a UGID attribute."""
output_format = [constants.OUTPUT_FORMAT_NUMPY, constants.OUTPUT_FORMAT_CSV_SHAPEFILE]
geom = self.get_shapefile_path_with_no_ugid()
geom_select_uid = [8, 11]
geom_uid = 'ID'
rd = self.test_data.get_rd('cancm4_tas')
for of in output_format:
ops = OcgOperations(dataset=rd, geom=geom, geom_select_uid=geom_select_uid, geom_uid=geom_uid, snippet=True,
output_format=of)
self.assertEqual(len(ops.geom), 2)
ret = ops.execute()
if of == constants.OUTPUT_FORMAT_NUMPY:
for element in geom_select_uid:
self.assertIn(element, ret)
self.assertEqual(ret.properties[8].dtype.names, ('STATE_FIPS', 'ID', 'STATE_NAME', 'STATE_ABBR'))
else:
with open(ret) as f:
reader = DictReader(f)
row = reader.next()
self.assertIn(geom_uid, row.keys())
self.assertNotIn(env.DEFAULT_GEOM_UID, row.keys())
shp_path = os.path.split(ret)[0]
shp_path = os.path.join(shp_path, 'shp', '{0}_gid.shp'.format(ops.prefix))
with fiona.open(shp_path) as source:
record = source.next()
self.assertIn(geom_uid, record['properties'])
self.assertNotIn(env.DEFAULT_GEOM_UID, record['properties'])
示例5: extractThresholdValues
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
def extractThresholdValues(fname):
# parse csv file and add threshold values as dict
# this method might be called multiple times for one item
# There are various formats:
# combined.modelEvaluation: Threshold Name, Testing.data, Cutoff,
# Sensitivity, Specificity
# biomod2.modelEvaluation: Threshold Name, Testing.data, Cutoff.*,
# Sensitivity.*, Specificity.*
# maxentResults.csv: Species,<various columns with interesting values>
# <threshold name><space><cumulative threshold,
# logistic threshold,area,training omission>
# FIXME: this is really ugly and csv format detection should be done
# differently
thresholds = {}
if fname.endswith("maxentResults.csv"):
csvfile = open(fname, "r")
dictreader = DictReader(csvfile)
row = dictreader.next()
# There is only one row in maxentResults
namelist = (
"Fixed cumulative value 1",
"Fixed cumulative value 5",
"Fixed cumulative value 10",
"Minimum training presence",
"10 percentile training presence",
"10 percentile training presence",
"Equal training sensitivity and specificity",
"Maximum training sensitivity plus specificity",
"Balance training omission, predicted area and threshold value",
"Equate entropy of thresholded and original distributions",
)
for name in namelist:
# We extract only 'cumulative threshold'' values
threshold = "{} cumulative threshold".format(name)
thresholds[threshold] = Decimal(row[threshold])
else:
# assume it's one of our biomod/dismo results
csvfile = open(fname, "r")
dictreader = DictReader(csvfile)
# search the field with Cutoff
name = "Cutoff"
for fieldname in dictreader.fieldnames:
if fieldname.startswith("Cutoff."):
name = fieldname
break
try:
for row in dictreader:
try:
thresholds[row[""]] = Decimal(row[name])
except (TypeError, InvalidOperation) as e:
LOG.warn(
"Couldn't parse threshold value '%s' (%s) from" "file '%s': %s", name, row[name], fname, repr(e)
)
except KeyError:
LOG.warn("Couldn't extract Threshold '%s' from file '%s'", name, fname)
return thresholds
示例6: CSVUnicodeReader
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
class CSVUnicodeReader(object):
def __init__(self, stream):
self.reader = DictReader(UTF8Encoder(stream))
def __iter__(self):
return self
def next(self):
entry = self.reader.next()
return dict([(unicode(k, "utf-8"), unicode(v, "utf-8")) for (k,v) in entry.items()])
示例7: upload_waterpoints
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
def upload_waterpoints(filename, skip=0, limit=None):
"""Upload waterpoints from a gzipped CSV file."""
convert = {
'date_recorded': lambda s: datetime.strptime(s, '%m/%d/%Y'),
'population': int,
'construction_year': lambda s: datetime.strptime(s, '%Y'),
'breakdown_year': lambda s: datetime.strptime(s, '%Y'),
'amount_tsh': float,
'gps_height': float,
'latitude': float,
'longitude': float,
}
with gzip.open(filename) as f:
reader = DictReader(f)
for i in range(skip):
reader.next()
for i, d in enumerate(reader):
d = dict((k, convert.get(k, str)(v)) for k, v in d.items() if v)
d['facility_code'] = 'wpf001'
check(add_document('waterpoints', d))
if limit and i >= limit:
break
示例8: next
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
def next(self):
row = DictReader.next(self)
try:
processed_row = dict(
(key, convert(value, self.field_types[key]))
for key, value in row.iteritems()
)
except ValueError as e:
self.errors.append((e, row))
if not self.silent:
raise e
else:
self.rows_imported += 1
return processed_row
示例9: test_success
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
def test_success(field, expected, log_path, response_for, form_data, sm_mock):
key, value = field
form_data[key] = value
assert response_for(form_data, log=False) == expected
assert sm_mock.call_count == 1
params = sm_mock.call_args[0][1]['fields']
assert set(params.keys()) == set(form_data.keys())
for key, value in form_data.items():
assert params[key] == value.decode('utf8')
assert response_for(form_data, log=True) == expected
assert sm_mock.call_count == 2
assert response_for(form_data, log=True) == expected
assert sm_mock.call_count == 3
with open(log_path) as log_file:
reader = DictReader(log_file)
row = reader.next()
# rows should not be equal because the time field
# is added by the logging function.
assert row != reader.next()
示例10: number1
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
def number1():
filename = '/home/apt9online/src/bslcks/jtest.csv'
cong = DictReader(open(filename))
while True:
p = cong.next()
print cong.line_num
if p['Include on directory'] == 'Yes':
if p['Family relation'] <> 'Duplicate':
try:
Person.objects.get(bslc_individual=p['Indiv #'])
print "%s %s already exists in the DB" % (p['First name'],p['Last name'])
except:
record_person(p)
示例11: StructuredReader
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
class StructuredReader(object):
def __init__(self, filename, container = None, dialect = 'simplecsv'):
self._container = None
if isinstance(container, ObjectContainer):
self._container = container
self._reader = DictReader(filename, fieldnames = None, restkey = "restkey", restval = "restval", dialect = dialect)
elif isinstance(container, TupleContainer) or isinstance(container, ListContainer):
self._container = container
self._reader = csv.reader(filename, dialect = dialect)
else:
raise Exception("Given container is not valid")
def next(self):
# do not treat the header row
if self._reader.line_num == 0:
self._reader.next()
row = self._reader.next()
return self._container.fetch(row)
def __iter__(self):
return self
示例12: BaseCSVHandler
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
class BaseCSVHandler(object):
defined_input_field_names = ['date','customer','money']
defined_output_field_names = ['date','customer','money']
result = []
def __init__(self, fnm_in='input.csv', fnm_out='output.csv', restkey=None, restval=None,
dialect_in="excel", dialect_out="excel"):
self.f_in = open(fnm_in)
self.csv_dict_reader = DictReader(self.f_in, restkey=restkey, restval=restval, dialect=dialect_in)
field_names = self.csv_dict_reader.fieldnames
if len(field_names) <> len(self.defined_input_field_names):
raise ValueError,\
("incorrect number of columns in the file %s, it should have %d columns" %
(fnm_in, len(self.defined_input_field_names)))
if [1 for x in zip(field_names,self.defined_input_field_names) if x[0] != x[1]]:
raise ValueError,\
("incorrect names of columns in the file %s, they should be %s" %
(fnm_in,'"{0}"'.format('","'.join(x for x in self.defined_input_field_names))))
self.f_out = open(fnm_out, 'w')
self.csv_dict_writer = DictWriter(self.f_out, self.defined_output_field_names, dialect=dialect_out)
def __iter__(self):
return self
def one_string_handler(self,s):
if s: self.result.append (s)
def next(self):
return self.csv_dict_reader.next()
def calc_result(self):
pass
def write_result(self):
self.csv_dict_writer.writeheader()
self.csv_dict_writer.writerows(self.result)
def close_all_files(self):
self.f_in.close()
self.f_out.close()
self.csv_dict_writer = None
self.csv_dict_reader = None
def process_all(self):
for i in self: self.one_string_handler(i)
self.calc_result()
self.write_result()
self.close_all_files()
示例13: test_write_csv
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
def test_write_csv(self):
"""TestBase: Base::write_csv() creates a valid csv"""
from csv import DictReader
fname = "thermal.csv"
trappy.Run().thermal.write_csv(fname)
with open(fname) as fin:
csv_reader = DictReader(fin)
self.assertTrue("Time" in csv_reader.fieldnames)
self.assertTrue("temp" in csv_reader.fieldnames)
first_data = csv_reader.next()
self.assertEquals(first_data["Time"], "0.0")
self.assertEquals(first_data["temp"], "68786")
示例14: graceful_read_csv
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
def graceful_read_csv(filename):
from csv import DictReader
data = []
try:
f = open(filename, 'rb')
except IOError as e:
print( "ERROR:", e.strerror )
exit()
csvreader = DictReader(f)
while True:
try: row = csvreader.next()
except: break
data.append(row)
return data
示例15: UnicodeDictReader
# 需要导入模块: from csv import DictReader [as 别名]
# 或者: from csv.DictReader import next [as 别名]
class UnicodeDictReader(object):
"""
A CSV reader which will iterate over lines in the CSV file "f",
which is encoded in the given encoding.
"""
def __init__(self, f, cols, dialect="excel", encoding="utf-8", **kwds):
f = UTF8Recoder(f, encoding)
self.reader = DictReader(f, cols, dialect=dialect, **kwds)
def next(self):
row = self.reader.next()
retval = {to_unicode_or_bust(k): to_unicode_or_bust(v) for k, v in row.items()}
return retval
def __iter__(self):
return self