7

私の質問は、Pythonで簡単なデータベースを作成する方法です。私の例は次のとおりです。

User = {
'Name' : {'Firstname', 'Lastname'},
'Address' : {'Street','Zip','State'},
'CreditCard' : {'CCtype','CCnumber'},
}

これで、このユーザーの情報を問題なく更新できますが、どうすればよいですか?

  1. このデータ構造にさらにユーザーを追加します。辞書の辞書?
  2. ユーザーが複数のクレジットカード、多対1の関係を持つことを許可する

返信ありがとうございます、私はしばらくの間これに頭を包み込もうとしていました

4

5 に答える 5

11

あなたはSQLAlchemyに興味があるかもしれません。これにより、SQLiteやMySQLなどの実際のデータベースがPythonクラスのように機能するようになります。

于 2012-05-30T20:43:29.653 に答える
5

私が見たほとんどのKey-Valueストアは、辞書の辞書(mongo *など)または文字列の辞書(redisなど)のいずれかです。両方のアプローチには賛否両論があります。何が欲しいのかわからないので、最も簡単な答えを示します。辞書のリストを使用してください。

Users = []
Users.append({
  'Name' : {'Firstname', 'Lastname'}, # Are these sets?
  'Address' : {'Street','Zip','State'},
  'CreditCard' : {'CCtype','CCnumber'},
})

* OK、公平を期すために、Mongoはマジックストリングの辞書のようなものです。これはjsonですが、ルックアップは内部で処理されるため、任意の(ただしjsonでシリアル化可能な)データ構造の辞書のように扱うことができます。

于 2012-05-30T20:45:18.933 に答える
4

sqliteを使用してPythonで簡単なデータベースを作成できます。これがその基本的なチュートリアルです。

于 2012-05-30T20:43:46.237 に答える
4

1。このデータ構造にさらにユーザーを追加します。辞書の辞書?

辞書のリスト。

[{'name': ...}, {'name': ...}]

2.ユーザーが複数のクレジットカード、多対1の関係を持つことを許可する

リスト。

{'name': ..., 'creditcard': [['type', 'number'], ['type', 'number']]}
于 2012-05-30T20:47:03.757 に答える
4

User情報を格納するクラスを作成します。クラスは、作成時または後で定義可能なクラスメソッドを使用してクラスインスタンスに追加されるクラスインスタンスの属性を持つことcreditcardsができます。他のメソッドは、呼び出されたときに必要に応じてこの(および他の)属性を更新できます。これはオブジェクト指向プログラミング(OOP)と呼ばれます。listCreditCard

listインスタンスは、 sやsなどのさまざまな組み込みコンテナクラスのインスタンス内のメモリに格納できますdictpickleそれらはディスクに保存され、後で、、、、およびモジュールを使用して取得shelveできjsonますsqlite3

これまでに行われたことのないことをやろうとしているわけではありません。これは、既成のソフトウェアがたくさんあることを意味するので朗報ですが、ドキュメントでそれらを読む必要があります。そして、それらの使い方を学ぶまで、おそらくさらにいくつか質問をして、それから質問に答え始めることができます。;-)

Pythonへようこそ!

于 2012-06-24T02:36:18.433 に答える