當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Tuple轉Json Array用法及代碼示例


Python 作為編程語言的多函數性延伸到其豐富的數據結構,包括元組和 JSON。 JSON 是 JavaScript Object Notation 的縮寫,是一種用於表示結構化數據的輕量級數據格式。此外,它是一種用於存儲和交換數據的語法。在本文中,我們將了解如何編寫元組JSON在Python中。

在 Python 中將元組轉換為 JSON

以下是一些我們可以轉換的方法元組到 JSON 中Python

使用json.dumps()方法

在此示例中,`json.dumps()` 函數用於將名為 `physics_tuple` 的元組轉換為 JSON 格式的字符串 (`json_data`)。然後顯示生成的 JSON 字符串及其數據類型,展示元組到 JSON 表示的序列化。

Python3


import json
physics_tuple = ('Class 9', 'Physics', 'Laws of Motion', 'Introduction', 'Newton First Law')
# Convert tuple to JSON
json_data = json.dumps(physics_tuple)
# Display the result
print(type(json_data))
print(json_data)
輸出
<class 'str'>
["Class 9", "Physics", "Laws of Motion", "Introduction", "Newton First Law"]


製作自定義編碼器函數

在這個例子中,一個自定義 JSON 編碼器定義名為“custom_encoder”的函數來處理元組的序列化。該函數將元組轉換為字典使用特殊鍵“__tuple__”和項目列表進行格式化。然後,使用 `default` 參數將這個自定義編碼器與“json.dumps”函數一起使用。表示序列化元組的結果 JSON 字符串與其數據類型一起顯示。

Python3


import json
physics_tuple = ('Class 9', 'Physics', 'Laws of Motion', 'Introduction', 'Newton First Law')
def custom_encoder(obj):
    if isinstance(obj, tuple):
        return {'__tuple__': True, 'items': list(obj)}
    return obj
json_data = json.dumps(physics_tuple, default=custom_encoder)
print(type(json_data))
print(json_data)
輸出
<class 'str'>
["Class 9", "Physics", "Laws of Motion", "Introduction", "Newton First Law"]


使用 Pandas

在此示例中,名為“physics_tuple”的元組被轉換為 Pandas DataFrame (`df`) 具有特定的列名稱。元組的第四個元素是一個列表,它作為名為“Subtopics”的列包含在 DataFrame 中。然後將“to_json”方法應用於DataFrame具有指定的方向 (‘records’),生成 JSON 格式的字符串 (`json_data`),以適合字典列表的 record-oriented 格式表示數據。

Python3


import json
import pandas as pd
physics_tuple = ('Class 9', 'Physics', 'Laws of Motion',
                 ['Introduction', 'Newton First Law'])
df = pd.DataFrame([physics_tuple], columns=[
                  'Class', 'Subject', 'Topic', 'Subtopics'])
json_data = df.to_json(orient='records')
print(type(json_data))
print(json_data)

輸出

<class 'str'> 
[{"Class":"Class 9","Subject":"Physics","Topic":"Laws of Motion","Subtopics":["Introduction","Newton First Law"]}]

自定義元組序列化

在此示例中,定義了一個名為`serialize`的自定義序列化函數來處理元組的序列化。該函數將元組轉換為字典格式,其中鍵‘tuple_items’包含項目列表。然後,使用 `default` 參數將此自定義序列化函數與“json.dumps()”函數一起使用。表示序列化元組的結果 JSON 字符串與其數據類型一起顯示。

Python3


import json
physics_tuple = ('Class 9', 'Physics', 'Laws of Motion', 'Introduction', 'Newton First Law')
def serialize(obj):
    if isinstance(obj, tuple):
        return {'tuple_items': list(obj)}
    return obj
json_data = json.dumps(physics_tuple, default=serialize)
print(type(json_data))
print(json_data)
輸出
<class 'str'>
["Class 9", "Physics", "Laws of Motion", "Introduction", "Newton First Law"]




相關用法


注:本文由純淨天空篩選整理自paulsubhro大神的英文原創作品 Convert Tuple to Json Array in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。