我有几个与天气相关的字段,例如date_of_data_collection
,time
,temperature
和relative humidity
。我必须将这些字段的值插入PostgreSQL
。另外,我想使用date
和timestamp
格式存储date_of_data_collection
和time
。该表已经创建。但是,插入是主要问题。如何在Python
中完成我的任务?
答案 0 :(得分:3)
有两种方法可以从python连接数据库:
这是完全不同的两件事:
注意:SQLAlchemy依赖于psycopg2或其他数据库驱动程序与数据库进行通信。
使用ORM 将提高您的开发速度,您可以通过以pythonic方式编写来生成SQL语句。例如,
from sqlalchemy import create_engine
dbengine = create_engine('postgresql://user@localhost:5432/db')
# Lets create a table with 2 columns
users = Table('users', metadata,
Column('name', String(40), primary_key=True)
Column('age', Integer)
)
users.create()
# And insert some data
u = users.insert()
u.execute (
{'name': 'John', 'age': 24},
{'date': 'Doe', 'age': 42},
)
提示:我更喜欢使用ORM,SQLAlchemy是非常好的库。
(此外,它还可以避免编写SQL)
使用数据库驱动程序-psycopg2 你可以阅读更多相关信息here
import psycopg2
DATABASE = psycopg2.connect("dbname='database_name' user='dbuser' host='localhost' password='dbpass'")
# Next step is to define a cursor to work with.
db = DATABASE.cursor()
# Now we can write our SQL statements
db.execute("""SELECT * from table_name""")
# create a table
db.execute('''CREATE TABLE users
(NAME TEXT NOT NULL,
AGE INT NOT NULL,
);'''
)
# And insert some data
db.execute("INSERT INTO users (NAME,AGE) VALUES ('John', 24)");
db.execute("INSERT INTO users (NAME,AGE) VALUES ('Doe', 42)");
# close communication with database
db.commit()
db.close()