I am using the flowing script, its ruining but did not import state table 

import csv


# initialize with empty ints and dicts
name,cities,countries,states=[],[],[],[]

with open('ind.csv','rb') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    reader.next() #skip header
    for row in reader:
name.append(row[0])
cities.append(row[2])
states.append(row[3])
countries.append(row[4])
cl = list(set(countries))
sl = list(set(states))
citl = list(set(cities))
inf1 = list(set(name)) 



with open('countries.csv','w') as cfile:
    writer = csv.writer(cfile, delimiter=',')
    writer.writerow(['country_id','name'])
    for i,x in enumerate(cl):
        writer.writerow([i,x])

with open('state.csv','w') as cfile:
    writer = csv.writer(cfile, delimiter=',')
    writer.writerow(['state_id','country_id','state'])
    for i,x in enumerate(sl):
        writer.writerow([i,x,cl.index(countries[states.index(x)])])

with open('cities.csv','w') as cfile:
    writer = csv.writer(cfile,delimiter=',')
    writer.writerow(['city_id','city','st_id','country_id'])
    for i,x in enumerate(citl):
        writer.writerow([i,x,sl.index(states[cities.index(x)]),
                         cl.index(countries[cities.index(x)])
                         ])
 
 
with open('inf123.csv','w') as cfile:
    writer = csv.writer(cfile,delimiter=',')
    writer.writerow(['Name_id', 'Name','city_id','st_id','country_id'])
    for i,x in enumerate(inf1):
writer.writerow([i,x,
citl.index(cities[name.index(x)]),
sl.index(states[name.index(x)]),
cl.index(countries[name.index(x)])
                         ])

import MySQLdb 
import csv
mydb = MySQLdb.connect(host="localhost", # The Host 
user="root", # username 
passwd="root", # password 
db="abc") # name of the data base


cursor = mydb.cursor()

csv_data = csv.reader(file('countries.csv'))
for row in csv_data:

    cursor.execute('INSERT INTO country(id, \
          name )' \
          'VALUES("%s", "%s")', 
          row)
#close the connection to the database.
mydb.commit()
cursor.close()
print "Done"


cursor = mydb.cursor()

csv_data = csv.reader(file('state.csv'))
for row in csv_data:

    cursor.execute('INSERT INTO state(id, \
          country, name )' \
          'VALUES("%s", "%s", "%s")', 
          row)
#close the connection to the database.
mydb.commit()
cursor.close()
print "Done"



i am geting below error

csv_spliter.py:74: Warning: Incorrect integer value: ''country_id'' for 
column 'id' at row 1
  row)
csv_spliter.py:74: Warning: Incorrect integer value: ''0'' for column 'id' 
at row 1
  row)
csv_spliter.py:74: Warning: Incorrect integer value: ''1'' for column 'id' 
at row 1
  row)
csv_spliter.py:74: Warning: Incorrect integer value: ''2'' for column 'id' 
at row 1
  row)
csv_spliter.py:74: Warning: Incorrect integer value: ''3'' for column 'id' 
at row 1
  row)
Done
Traceback (most recent call last):
  File "csv_spliter.py", line 89, in <module>
    row)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in 
execute
    self.errorhandler(self, exc, value)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, 
in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.IntegrityError: (1452, 'Cannot add or update a child row: 
a foreign key constraint fails (`lcm`.`state`, CONSTRAINT `state_ibfk_1` 
FOREIGN KEY (`country`) REFERENCES `country` (`id`) ON DELETE CASCADE)') 

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to