Pythonの日常業務-データストレージレベル4:Pythonオブジェクトを対応するJSON文字列に変換する方法

面接の質問の第4レベル:

パート1-テストサイト:

  • ダンプ機能の使用。

パート2-インタビューの質問:

1.インタビューの質問1:Pythonオブジェクトを対応するJSON文字列に変換します。

2.インタビューの質問2:オブジェクトのリストをJSON配列に変換します。


パート3-分析:

インタビューの質問の1つは、Pythonオブジェクトを対応するJSON文字列に変換します。

  • dumps()関数を使用する場合、重要なポイントは変換関数を使用することです〜
# coding=utf-8
# _author__ = 孤寒者
import json


class Product:
    def __init__(self, name, age, height):
        self.name = name
        self.age = age
        self.height = height

product = Product('孤寒者', 18, 130)

def product2Dict(obj):
    return {
    
    
        'name': obj.name,
        'age': obj.age,
        'height': obj.height
    }

# dumps()方法的default参数指定转换函数。                
jsonStr = json.dumps(product, default=product2Dict, ensure_ascii=False)
print(jsonStr)
print(type(jsonStr))

ここに画像の説明を挿入

インタビューの質問2は、オブジェクトのリストをJSON配列に変換します。

  • この関数を実装するには、オブジェクトのリストが必要なので、JSONドキュメント(以下のtest.jsonファイル)をオブジェクトのリスト(前の質問で操作方法をすでに知っています〜)に変換してから、 JSON配列に変換します。
[
  {
    
    
    "name": "孤寒者",
    "age": 18,
    "height": 130
  },
  {
    
    
    "name": "小张",
    "age": 18,
    "height": 80
  }
]
# coding=utf-8
# _author__ = 孤寒者
import json

class Product:
    def __init__(self, d):
        self.__dict__ = d

with open('test.json', 'r', encoding='utf-8') as f:
    jsonStr = f.read()
    products = json.loads(jsonStr, object_hook=Product)
    print(products)

ここに画像の説明を挿入上のスクリーンショットは、JSONドキュメントをオブジェクトのリストに実際に変換したことを示しています。
問題の解決を始めましょう。

# coding=utf-8
# _author__ = 孤寒者
import json

class Product:
    def __init__(self, d):
        self.__dict__ = d

with open('test.json', 'r', encoding='utf-8') as f:
    jsonStr = f.read()
    products = json.loads(jsonStr, object_hook=Product)
    print(products)
    for product in products:
        print(product.name)

    print("*"*25)
    
    # 解题部分:
    def product2Dict(obj):
        return {
    
    
            'name': obj.name,
            'age': obj.age,
            'height': obj.height
        }

    jsonStr = json.dumps(products, default=product2Dict, ensure_ascii=False)
    print(jsonStr)
    print(type(jsonStr))

ここに画像の説明を挿入


パート4-結論:

  • jsonモジュールのdumps関数は、オブジェクトをJSON文字列に変換するために使用されます。
  • オブジェクトの属性値を抽出し、JSONオブジェクトを生成できるデフォルトのパラメーターを使用して変換関数を指定します。最後に、ダンプは、変換関数によって返されたJSONオブジェクトをJSON文字列に変換します。

おすすめ

転載: blog.csdn.net/qq_44907926/article/details/123019162