質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • Python 3.x

    7446questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • SQL

    2571questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

  • Django

    1188questions

    DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

  • Mecab

    194questions

    Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

codec can't decode byte 0xfd

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 235

bunks

score 19

https://teratail.com/questions/134994
上記の質問を参考に,データベースを作ることはできたのですが,

DB_SCHEMA_PATH = "db.sqlite3"

with open(PrepareChain.DB_SCHEMA_PATH, "r", encoding='utf-8') as f:
                schema = f.read()
                con.executescript(schema)


schema = f.read()の部分で以下のようなエラーが出ます。

Exception Value: utf-8' codec can't decode byte 0xfd in position 98: invalid start byte

/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/codecs.py in decode
        # Overwrite this method in subclasses: It must decode input
        # and return an (output, length consumed) tuple
        raise NotImplementedError
    def decode(self, input, final=False):
        # decode input (taking the buffer into account)
        data = self.buffer + input
        (result, consumed) = self._buffer_decode(data, self.errors, final) ←←←←←←←エラーの出る業
        # keep undecoded input until the next call
        self.buffer = data[consumed:]
        return result
    def reset(self):
        IncrementalDecoder.reset(self)

また,openの引数にerror="ignore"を加えると,
con.executescript(schema)に

Exception Value: near "SQLite": syntax error


('SQLite format 3\x00\x10\x00\x01\x01\x00@  '
 '\x00\x00\x00+\x00\x00\x00&\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00K\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00+\x00-r\x05\x00\x00\x00\x01\x0f\x00\x00\x00\x00\x17\x0f\n'
 '\x1f\x0b'
 '\x0b'
 '(\x0b'
 '\t\x07\t'
 '\x06\x05i\x04\x03\x03\x03\x02U\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00=\x12\x07\x17k-\x01oindexauth_user_groups_user_id_group_id_94350c0c_uniqauth_user_groups\x13CREATE '
 'UNIQUE INDEX auth_user_groups_user_id_group_id_94350c0c_uniq ON '
 '"auth_user_groups" ("user_id", '
 '"group_id"):\x11\x07\x17g9\x01aindexauth_group_permissions_permission_id_84c5c92eauth_group_permissions\x12CREATE '
 'INDEX "auth_group_permissions_permission_id_84c5c92e" ON '
 '"auth_group_permissions" '
 '("permission_id")+\x10\x07\x17]9\x01Mindexauth_group_permissions_group_id_b120cbf9auth_group_permissions\x11CREATE '
 'INDEX "auth_group_permissions_group_id_b120cbf9" ON "auth_group_permissions" '
 '("group_id")h\x0f\x08\x17\x039\x01\x1f'('SQLi
.
.
.


と表示されます。
(chain_freqsという作ったはずのテーブルが見られないので,データベースの作成エラーでしょうか)

データベースの該当部分は,shellを使って追加しましたため,特にモデルなどは作っていません。

django上でなければ全く普通に動くプログラムなだけに,どうすれば良いのかわかりません。
エラーが出ないようにする解決策を教えていただきたいです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • quiqui

    2018/07/09 13:01

    エラーに書いてあることを読んでますか?

    キャンセル

  • quiqui

    2018/07/09 13:02

    どの行でエラーが出ているか書いてありません

    キャンセル

回答 2

0

Django ORMは使う予定はないと言うことですか? それならDjangoじゃない物を使ったほうがいい気がします。

modelを書かない理由はなんですか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/09 14:30

    drop table if exists chain_freqs;
    create table chain_freqs (
    id integer primary key autoincrement not null,
    prefix1 text not null,
    prefix2 text not null,
    suffix text not null,
    freq integer not null
    );
    に対応するModelが書けなかったので,直接テーブルだけ追加する形になりました。

    キャンセル

  • 2018/07/09 15:03

    使わない用件があるわけではないんですね
    既存のDBのモデルを作るなら これが簡単ですよ

    https://docs.djangoproject.com/en/2.0/howto/legacy-databases/

    キャンセル

  • 2018/07/09 15:18

    ご丁寧に回答していただきありがとうございます。

    キャンセル

  • 2018/07/09 16:27

    modelを書いたら解決しました??

    キャンセル

  • 2018/07/09 16:38

    modelの生成がうまくいきません…
    今,いただいたURLを参考に進めているのですが,
    ------setting.py------
    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': os.path.join(BASE_DIR, 'schema.sql'),
    }

    ----schema.sql-----
    drop table if exists chain_freqs;
    create table chain_freqs (
    id integer primary key autoincrement not null,
    prefix1 text not null,
    prefix2 text not null,
    suffix text not null,
    freq integer not null
    );

    としたところで,下のようなエラーが出ます。
    django.db.utils.DatabaseError: file is encrypted or is not a database
    型が間違っているのでしょうか?度々すみません。。

    キャンセル

  • 2018/07/09 16:42

    コマンドの入力から 全て貼り付けていただけますか あと、バージョンとかもお願いします

    キャンセル

  • 2018/07/09 16:59

    python 3.6.3
    SQLite version 3.19.3

    以下,コマンドからエラーメッセージまでです。

    $ python3 manage.py inspectdb
    # This is an auto-generated Django model module.
    # You'll have to do the following manually to clean this up:
    # * Rearrange models' order
    # * Make sure each model has one field with primary_key=True
    # * Make sure each ForeignKey has `on_delete` set to the desired behavior.
    # * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table
    # Feel free to rename the models, but don't rename db_table values or field names.
    from django.db import models
    Traceback (most recent call last):
    File "/Users/USER_NAME/django/django/db/backends/utils.py", line 83, in _execute
    return self.cursor.execute(sql)
    File "/Users/USER_NAME/django/django/db/backends/sqlite3/base.py", line 294, in execute
    return Database.Cursor.execute(self, query)
    sqlite3.DatabaseError: file is encrypted or is not a database

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
    File "manage.py", line 18, in <module>
    execute_from_command_line(sys.argv)
    File "/Users/USER_NAME/django/django/core/management/__init__.py", line 381, in execute_from_command_line
    utility.execute()
    File "/Users/USER_NAME/django/django/core/management/__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
    File "/Users/USER_NAME/django/django/core/management/base.py", line 316, in run_from_argv
    self.execute(*args, **cmd_options)
    File "/Users/USER_NAME/django/django/core/management/base.py", line 353, in execute
    output = self.handle(*args, **options)
    File "/Users/USER_NAME/django/django/core/management/commands/inspectdb.py", line 31, in handle
    for line in self.handle_inspection(options):
    File "/Users/USER_NAME/django/django/core/management/commands/inspectdb.py", line 60, in handle_inspection
    table_info = connection.introspection.get_table_list(cursor)
    File "/Users/USER_NAME/django/django/db/backends/sqlite3/introspection.py", line 65, in get_table_list
    ORDER BY name""")
    File "/Users/USER_NAME/django/django/db/backends/utils.py", line 100, in execute
    return super().execute(sql, params)
    File "/Users/USER_NAME/django/django/db/backends/utils.py", line 68, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
    File "/Users/USER_NAME/django/django/db/backends/utils.py", line 77, in _execute_with_wrappers
    return executor(sql, params, many, context)
    File "/Users/USER_NAME/django/django/db/backends/utils.py", line 85, in _execute
    return self.cursor.execute(sql, params)
    File "/Users/USER_NAME/django/django/db/utils.py", line 89, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
    File "/Users/USER_NAME/django/django/db/backends/utils.py", line 83, in _execute
    return self.cursor.execute(sql)
    File "/Users/USER_NAME/django/django/db/backends/sqlite3/base.py", line 294, in execute
    return Database.Cursor.execute(self, query)
    django.db.utils.DatabaseError: file is encrypted or is not a database

    キャンセル

  • 2018/07/09 22:54

    書かれたコードが問題ではなく それ以前の環境が問題な気がします。

    一度別に仮想環境を作って 新規でpallsを作るとどうなりますか?

    キャンセル

0

http://d.hatena.ne.jp/thata/20101224/1293175587

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Python 3.x

    7446questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • SQL

    2571questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

  • Django

    1188questions

    DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

  • Mecab

    194questions

    Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。