Данные API напрямую вставляются в базу данных PostgreSQL с помощью Python. - PullRequest
0 голосов
/ 04 марта 2019

main.py

import json, urllib.request, requests
import psycopg2
from psycopg2.extras import execute_values


# Retrieve Json Data from Within API

url = "https://datahead.herokuapp.com/api/employeers/"
response = urllib.request.urlopen(url)
data = json.loads(response.read())


# ***** connect to the db *******
try:
    conn = psycopg2.connect("dbname='datahead' user='postgres' host='localhost' password='datahead'")
except:
    print("I am unable to connect to the database")

# cursor
cur = conn.cursor()

fields = [
    'id', #integer
    'name', #varchar
    'log_date', #date
    'log_time', #timestamp
    'login', #timestamp
    'logout' #timestamp
]

for item in data:
    my_data = [item[field] for field in fields]
    insert_query = "INSERT INTO employee VALUES (%s, %s, %s, %s, %s, %s)"
    cur.execute(insert_query, tuple(my_data))
    conn.commit()

# close the cursor
cur.close()

# close the connection
conn.close()

, пожалуйста, посетите мой формат данных API https://datahead.herokuapp.com/api/employeers/

Error Through

Изменится ли здесь тип отметки времени, если да, то какойтип данных я должен использовать?Строка 56, что случилось?

PGadmin type

1 Ответ

0 голосов
/ 04 марта 2019

Я думаю, login_time должно быть типа time without time zone в PostgresSQL.

Но вам, вероятно, было бы лучше использовать timestamp with time zone для представления даты и времени вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...