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