我从数据库中取出两列数据得到
data = [['美国', 46], ['英国', 27], ['中国', 26]]
如何转换为json格式的文件
{
{
name: '美国',
value: 46
},
{
name: '英国',
value: 27
},
{
name: '中国',
value: 26
},
}
求相关的python代码。最好能附上注释,本人初学者,多包涵,真的不是很会这个问题。
PHP中文网2017-04-18 09:30:56
あなたが望む結果はおそらく次のとおりだと思います:
リーリーまたは:
リーリー リーリーjson 形式は、実際に Python オブジェクトをプレーン テキスト ファイル (Python の場合) にシリアル化します。
json.dumps 関数は、Python オブジェクトを JSON 文字列に変換 (シリアル化) します。インデントとは、この文字列をインデントするために 4 つのスペースを使用することを意味します。は通常の文字列でもあり、次のことができます:
初心者にとって、上記のコードは理解しにくいかもしれません。最初の関数をもっと馬鹿げた方法で書いてみましょう。
リーリーPHP中文网2017-04-18 09:30:56
@pylego 問題があります。出力例は標準の json ではありません (json の標準的な定義については、「JSON の紹介」を参照してください)。{}
は Python の辞書に似た js オブジェクトです。値のペアで構成されるキーの例:
明らかに規制に準拠していないので、次のように推測してください。
リーリーはあなたが望むものです。
この方法は誰にとっても同様である必要があり、大きく 3 つの部分に分けることができます:
data
を目的の形式に変換します: 辞書のリスト
json
モジュールを使用して data
を json_data
ファイルに書き込む
data
を目的の形式に変換します: 辞書のリスト最初の部分はまったく異なります。names
最初に次のリストを作成することにしました。
実際、これは次のようなものです:
リーリーも同様ですが、split
を使う方法の方が早く書けるのでとても気に入っています(プロジェクト数が多い場合はそんなに引用符を付ける必要がありません)。
次に、リスト内包表記を使用して辞書のリストを作成します。
リーリー最初に for d in data
を使用して data
内の各ペアを反復し、次に zip
を使用してプロジェクト名と対応する値を結合します。
次に、dict
は反復可能 (各項目は 2 要素のタプルなどのキーと値のペア) を取り込み、辞書を作成します。
json
モジュールを使用して data
を json_data
に変換します
2 番目の部分、json_data
のダンプ。これは非常に簡単です。dumps
を使用するだけです。json.dumps を参照してください
sort_keys
: JSON 内の object
内のキーを並べ替えます。これは設定するかどうかを指定できます
indent
: インデントを設定します
separators
: JSON 出力の区切り記号を設定します。','
は項目を区切るために使用され、': '
はキーと値を区切るために使用されます
ensure_ascii
: 印刷時に Unicode エスケープ False
特別なことは何もありません。ファイルの切り替えを処理するには with
を使用し、print(file=XXX)
を出力するには
私が回答した質問: Python-QA