小编Jea*_*lie的帖子

使用sqlalchemy强制执行列编码

我使用sqlalchemy来创建我的数据库的模式.无论我怎么做,我都没有成功地使用utf-8.

这是一个重新创建我的问题的最小python脚本:

from sqlalchemy import create_engine, Column, Unicode
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('mysql+mysqldb://user:password@localhost/multidic?charset=utf8', echo=True)
Base = declarative_base()
class MyTableName(Base):
    __tablename__ = "mytablename"
    test_column = Column(Unicode(2),primary_key=True)
Base.metadata.create_all(engine)
Run Code Online (Sandbox Code Playgroud)

运行此脚本后,当我查看数据库时,我看到编码是latin1而不是utf-8:

mysql> SHOW FULL COLUMNS FROM mytablename;
+-------------+------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
| Field       | Type       | Collation         | Null | Key | Default | Extra | Privileges                      | Comment |
+-------------+------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
| test_column | varchar(2) | latin1_swedish_ci | NO   | PRI | NULL    |       | select,insert,update,references |         |
+-------------+------------+-------------------+------+-----+---------+-------+---------------------------------+---------+
1 row in set (0.00 sec) …
Run Code Online (Sandbox Code Playgroud)

python mysql encoding sqlalchemy utf-8

14
推荐指数
2
解决办法
1万
查看次数

R 等效于 Python 的 hashlib.sha256 函数

我正在尝试在 R 中复制以下 Python 代码的输出:

import hashlib

x = hashlib.sha256()
x.update("asdf".encode("utf8"))
print(x.digest())
# b'\xf0\xe4\xc2\xf7lX\x91n\xc2X\xf2F\x85\x1b\xea\t\x1d\x14\xd4$z/\xc3\xe1\x86\x94F\x1b\x18\x16\xe1;'
Run Code Online (Sandbox Code Playgroud)

这是我的 R 代码:

library(digest)
digest("asdf", algo="sha256", serialize=FALSE)
# "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b"
Run Code Online (Sandbox Code Playgroud)

我可以通过使用x.hexdigest()而不是x.digest(). 如何x.digest()在我的 R 代码中获取输出?

python r digest hashlib

3
推荐指数
1
解决办法
1230
查看次数

标签 统计

python ×2

digest ×1

encoding ×1

hashlib ×1

mysql ×1

r ×1

sqlalchemy ×1

utf-8 ×1