简体   繁体   中英

Unexpected error when creating a SQLite database using python

import json
import urllib
import sqlite3

import temp


def loading():
    url = 'https://jobs.github.com/positions.json?page=1'  # URL for API 1-5json_obj = urllib.urlopen(url)
    response = urllib.urlopen(url)
    data = json.load(response)  # loads the url and set it into data variable

    for item in data[0].keys():
        print(item)
        return data  # Get the keys


# def loading():
# print " LOADING API(s)"
# urllib.urlopen('https://jobs.github.com/positions.json?page=1')
# temp = json.dumps(data[1])
# print (json.dumps(data[1]))
# print (" ")
def createDB(data):
    conn = sqlite3.connect('test.db')
    c = conn.cursor()
    # Create table
    c.execute('''CREATE TABLE example
        (description text, title text, url text, company_logo text, company text, id integer primary key, company_url text, how_to_apply text,
        location text, type text, created_at timestamp)''')
    temp_values = list(tuple())
    for item in temp:

        list_of_values = [v for k, v in item.items()]
        tuple_of_values = tuple(list_of_values)
        temp_values.append(tuple_of_values)
        c.executemany('INSERT INTO table_name VALUES (?,?,?,?,?,?,?,?,?,?,?)', temp_values)


def main():
    data = loading()
    createDB(data)


main()

I ran the code it creates the database but nothing seems to be in it this is the error I get as well File

Traceback (most recent call last): File "/Users/issac_rodriguez/PycharmProjects/N/Sprint2/database.py", line 45, in main() File "/Users/issac_rodriguez/PycharmProjects/N/Sprint2/database.py", line 42, in main createDB(data) File "/Users/issac_rodriguez/PycharmProjects/N/Sprint2/database.py", line 32, in createDB for item in temp: TypeError: 'module' object is not iterable

Take a look at the loop your createDB() function. You tried to iterate through temp which is referring to the module temp that you imported above. Perhaps you meant to iterate through temp_values ? You may also need to pass your argument data into temp_values . Here is a potential solution:

temp_values = list(tuple(data))
for item in temp_values:
...

Hope this helps!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM