T
TYR
OK, this ought to be simple. I'm parsing a large text file (originally
a database dump) in order to process the contents back into a SQLite3
database. The data looks like this:
'AAA','PF',-17.416666666667,-145.5,'Anaa, French Polynesia','Pacific/
Tahiti','Anaa';'AAB','AU',-26.75,141,'Arrabury, Queensland,
Australia','?','?';'AAC','EG',31.133333333333,33.8,'Al Arish,
Egypt','Africa/Cairo','El Arish International';'AAE','DZ',
36.833333333333,8,'Annaba','Africa/Algiers','Rabah Bitat';
which goes on for another 308 lines. As keen and agile minds will no
doubt spot, the rows are separated by a ; so it should be simple to
parse it using a regex. So, I establish a db connection and cursor,
create the table, and open the source file.
Then we do this:
f = file.readlines()
biglist = re.split(';', f)
and then iterate over the output from re.split(), inserting each set
of values into the db, and finally close the file and commit
transactions. But instead, I get this error:
Traceback (most recent call last):
File "converter.py", line 12, in <module>
biglist = re.split(';', f)
File "/usr/lib/python2.5/re.py", line 157, in split
return _compile(pattern, 0).split(string, maxsplit)
TypeError: expected string or buffer
Is this because the lat and long values are integers rather than
strings? (If so, any ideas?)
a database dump) in order to process the contents back into a SQLite3
database. The data looks like this:
'AAA','PF',-17.416666666667,-145.5,'Anaa, French Polynesia','Pacific/
Tahiti','Anaa';'AAB','AU',-26.75,141,'Arrabury, Queensland,
Australia','?','?';'AAC','EG',31.133333333333,33.8,'Al Arish,
Egypt','Africa/Cairo','El Arish International';'AAE','DZ',
36.833333333333,8,'Annaba','Africa/Algiers','Rabah Bitat';
which goes on for another 308 lines. As keen and agile minds will no
doubt spot, the rows are separated by a ; so it should be simple to
parse it using a regex. So, I establish a db connection and cursor,
create the table, and open the source file.
Then we do this:
f = file.readlines()
biglist = re.split(';', f)
and then iterate over the output from re.split(), inserting each set
of values into the db, and finally close the file and commit
transactions. But instead, I get this error:
Traceback (most recent call last):
File "converter.py", line 12, in <module>
biglist = re.split(';', f)
File "/usr/lib/python2.5/re.py", line 157, in split
return _compile(pattern, 0).split(string, maxsplit)
TypeError: expected string or buffer
Is this because the lat and long values are integers rather than
strings? (If so, any ideas?)