[PYTHON] Süchtig nach Zeichencode durch Einfügen und Extrahieren von Daten mit SQL Alchemy

Süchtig nach SQLAlchemy und Zeichencode (UTF-8, Unicode)

Problem

Wenn Sie die Daten selbst in MySQL ablegen, werden sie nicht verstümmelt, wenn Sie sie mit sqlalchemy herausnehmen. Wenn Sie sie jedoch in die Dump-Datei einfügen, die Sie von einem Freund erhalten haben, werden sie verstümmelt, wenn Sie sie mit sqlalchemy / (^ o ^) \ herausnehmen

Lösung

Wenn Sie sqlalchemy zum Ein- und Auslagern von Daten verwenden, ** verwenden Sie beim Einfügen und Extrahieren (Auswählen) immer denselben Zeichencode (Einstellung). ** ** **


Kommentar

Diesmal die folgenden Grundlagen? Ich habe versucht, eine gute Verbindung herzustellen.

# -*- coding: utf-8 -*-

from sqlalchemy import create_engine,
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import MetaData


#Verarbeitung im Zusammenhang mit der Verbindung mit db
engine = create_engine('mysql://username:password@localhost/dbname?charset=utf8')
Base = declarative_base()
metadata = MetaData()
Session = sessionmaker(bind=engine)
session = Session()

Es gibt kein schwerwiegendes Problem, wenn Sie es selbst ein- und ausbauen. Seien Sie jedoch vorsichtig, wenn Sie mit Daten umgehen, die von anderen Personen mit sqlalchemy empfangen wurden.

Dieses Mal bekam ich eine Dump-Datei von MySQL und fügte die Daten ein, aber als ich sie über SQLalchemy herausnahm, waren die Zeichen verstümmelt / (^ o ^) \

Status

mich selber:

create_engine('mysql://username:password@localhost/dbname')

Zeichensatz ist nicht auf utf-8 / (^ o ^) \ gesetzt

Gegner: Der Zeichensatz wurde ordnungsgemäß auf utf-8 eingestellt. (Ich habe sqlalchemy nicht verwendet, weil ich Daten mit Rails in MySQL eingefügt habe.)

Wie hast du das behoben?

Ich habe es wie folgt umgeschrieben.

create_engine('mysql://username:password@localhost/dbname?charset=utf8')

Ich habe gerade? Charset = utf8 am Ende hinzugefügt. Der folgende Fluss ist jedoch nicht gut.

Daten einfügen (ohne? Charset = utf8) ↓ Daten extrahieren (mit? Charset = utf8 hinzugefügt) Die Charaktere sind verstümmelt.

Lassen Sie uns Daten mit denselben Einstellungen einfügen und abrufen. Mit anderen Worten

Daten einfügen (mit? Charset = utf8 hinzugefügt) ↓ Daten extrahieren (mit? Charset = utf8 hinzugefügt)

Auf diese Weise treten keine verstümmelten Zeichen auf.

Und umgekehrt. Wenn Sie die Daten ohne? Charset = utf8 eingefügt haben, rufen Sie sie ohne? Charset = utf8 ab.

Wenn Sie die Daten mit? Charset = utf8 abrufen, werden die Zeichendaten in Unicode zurückgegeben. Wenn Sie? Charset = utf8 nicht hinzugefügt haben, wurde es ascii zurückgegeben.

Ich möchte Python3 so schnell wie möglich machen \ (^ o ^) /

Recommended Posts

Süchtig nach Zeichencode durch Einfügen und Extrahieren von Daten mit SQL Alchemy
[Python / Ruby] Mit Code verstehen Wie man Daten aus dem Internet abruft und in CSV schreibt
Was tun, wenn Sie von Windows-Zeichencodes abhängig sind?
Holen Sie sich zusätzliche Daten zu LDAP mit Python (Writer und Reader)
Einführung in RDB mit sqlalchemy Ⅰ
Wie aktualisiere ich mit SQLAlchemy?
Wie mit SQLAlchemy ändern?
Group_by mit sqlalchemy und sum
Wie lösche ich mit SQLAlchemy?
"Einführung in die Datenanalyse durch statistische Bayes'sche Modellierung beginnend mit R und Stan" in Python implementiert
Generieren Sie einen Fehlerkorrekturcode, um die Datenbeschädigung mit der zfec-Bibliothek wiederherzustellen
Führen Sie Jupyter mit der REST-API aus, um Python-Code zu extrahieren und zu speichern
Ein Hinweis, dem ich beim Erstellen einer Tabelle mit SQL Alchemy verfallen war
Verschieben Sie Daten mit Python Change / Delete (Writer und Reader) nach LDAP.
So erstellen Sie eine Python- und Jupyter-Ausführungsumgebung mit VSCode
Stellen Sie mit SQL Alchemy eine Verbindung zu mehreren Datenbanken her
Umgang mit unausgeglichenen Daten
Verwenden von Sitzungen und Reflexionen mit SQL Alchemy
Aufblasen von Daten (Datenerweiterung) mit PyTorch
Zeichencode-bezogene Linux-Befehle
So verbinden Sie INNER mit SQL Alchemy
Speichern Sie die von Moskito auf Docker empfangenen JSON-Daten in DB und Elasticsearch
Zeichencode-Konvertierung. nfk nicht. Alternative mit iconv und tr
Ich war süchtig danach, eine Python-Venv-Umgebung mit VS Code zu erstellen
Sortieren Sie Anime-Gesichter, indem Sie Anime-Charakterseiten mit Beautiful Soup und Selenium abkratzen
Python-Code zum Trainieren und Testen mit Custom Vision of Cognitive Service
Fühlen Sie sich frei, 100 Datenwissenschaften mit Google Colab und Azure Notebooks zu schlagen!