我有几个与天气相关的字段,例如 date_of_data_collection
、time
、temperature
和 relative humidity
。我必须将这些字段的值插入到 PostgreSQL
中。另外,我想使用 date
和 timestamp
格式来存储 date_of_data_collection
和 time
。该表已创建。然而,插入是主要问题。如何在 Python
中完成我的任务?
最佳答案
有两种方法可以从 python 连接到数据库:
- 像 SQLAlchemy 这样的 ORM
- 数据库驱动程序/适配器,如 psycopg2
这是两个完全不同的东西:
- SQLAlchemy 生成 SQL 语句,并且
- psycopg2直接向数据库发送SQL语句。
注意:SQLAlchemy 依赖于 psycopg2 或其他数据库驱动程序来与数据库通信。
使用ORM可以提高开发速度,用python化的方式编写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()
关于python - 将日期和时间戳格式的数据插入 PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24924893/