python - 数据库提取出的数据转json
PHP中文网
PHP中文网 2017-04-18 09:28:56
0
2
764

我从数据库中取出两列数据得到

data = [['美国', 46], ['英国', 27], ['中国', 26]]

如何转换为json格式的文件

{
    {
        name: '美国',
        value: 46
    },
    {
        name: '英国',
        value: 27
    },
    {
        name: '中国',
        value: 26
    },
}

求相关的python代码。最好能附上注释,本人初学者,多包涵,真的不是很会这个问题。

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(2)
Ty80

あなたが望む結果はおそらく次のとおりだと思います:

リーリー

または:

リーリー リーリー

json 形式は、実際に Python オブジェクトをプレーン テキスト ファイル (Python の場合) にシリアル化します。
json.dumps 関数は、Python オブジェクトを JSON 文字列に変換 (シリアル化) します。インデントとは、この文字列をインデントするために 4 つのスペースを使用することを意味します。は通常の文字列でもあり、次のことができます:

リーリー

初心者にとって、上記のコードは理解しにくいかもしれません。最初の関数をもっと馬鹿げた方法で書いてみましょう。

リーリー
いいねを押す +0
Ty80

ご質問について

@pylego 問題があります。出力例は標準の json ではありません (json の標準的な定義については、「JSON の紹介」を参照してください)。{} は Python の辞書に似た js オブジェクトです。値のペアで構成されるキーの例:

リーリー

明らかに規制に準拠していないので、次のように推測してください。

リーリー

はあなたが望むものです。

その方法

リーリー

この方法は誰にとっても同様である必要があり、大きく 3 つの部分に分けることができます:

  • data を目的の形式に変換します: 辞書のリスト

  • json モジュールを使用して datajson_data

  • に変換します
  • ファイルに書き込む

(1) data を目的の形式に変換します: 辞書のリスト

最初の部分はまったく異なります。names最初に次のリストを作成することにしました。

リーリー

実際、これは次のようなものです:

リーリー

も同様ですが、splitを使う方法の方が早く書けるのでとても気に入っています(プロジェクト数が多い場合はそんなに引用符を付ける必要がありません)。

次に、リスト内包表記を使用して辞書のリストを作成します。

リーリー

最初に for d in data を使用して data 内の各ペアを反復し、次に zip を使用してプロジェクト名と対応する値を結合します。

リーリー

次に、dict は反復可能 (各項目は 2 要素のタプルなどのキーと値のペア) を取り込み、辞書を作成します。

(2) json モジュールを使用して datajson_data に変換します

2 番目の部分、json_data のダンプ。これは非常に簡単です。dumps を使用するだけです。json.dumps を参照してください

リーリー
  • sort_keys: JSON 内の object 内のキーを並べ替えます。これは設定するかどうかを指定できます

  • indent: インデントを設定します

  • separators: JSON 出力の区切り記号を設定します。',' は項目を区切るために使用され、': ' はキーと値を区切るために使用されます

  • ensure_ascii: 印刷時に Unicode エスケープ False

    を無効にするには、
  • に設定します。

(3) ファイルへの書き込み

特別なことは何もありません。ファイルの切り替えを処理するには with を使用し、print(file=XXX) を出力するには

を使用します。

私が回答した質問: Python-QA

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート