執(zhí)行python腳本并傳入json數據格式參數方式
執(zhí)行python腳本并傳入json數據格式參數
最近在寫一個python的數據統(tǒng)計分析腳本,需要根據json的數據格式參數去進行業(yè)務邏輯處理,出了一些情況拿出來一起分享討論。一下代碼純屬示例。
腳本類容很簡單,接收一下參數,并使用json包進行一個加載解析。
執(zhí)行腳本,傳入一個json對象數組:
腳本接受到的內容:
json加載解析出錯:
可以看到python腳本接收到參數的時候會將雙引號剔除,然后該傳入參數已經不符合json數據格式,導致轉換失敗。
解決辦法,最外層使用單引號包裹:
可以看到參數成功傳入并且成功被解析。
注意:此方法只能在Linux操作系統(tǒng)上成功,在Windows上測試依然失敗,不知道原因,有了解的或者有更好的方法的歡迎評論。
Windows上測試結果:
python解析JSON數據
JSON(JavaScript Object Natation)是一種輕量級的數據交換格式,其基于ECMAScript的一個子集。Python中提供了json模塊來對JSON數據進行編碼和解碼。
json模塊包含以下兩個函數
json.dumps()
:對數據進行編碼jsonloads()
:對數據進行解碼
示例
import json data1 = { 'id': '001', 'name': '李華', 'date': '20220115' } json_str = json.dumps(data1) print("Python 原始數據:", data1, type(data1)) print("Python 原始數據:", repr(data1), type(repr(data1))) print("JSON 對象:", json_str, type(json_str))
程序運行結果:
關于repr()的解釋,一種可以參考是說法是: 函數str() 用于將值轉化為適于人閱讀的形式,而repr() 轉化為供解釋器讀取的形式。
data2 = json.loads(json_str) print("data2['name']:", data2["name"]) print("data2['id']:", data2["id"])
程序運行結果:
如果是處理json文件,則需要使用**json.dump()和json.load()**來編碼和解碼JSON數據,代碼如下:
# 寫入數據 with open('data.json', 'w') as f: json.dump(data1, f) # 讀取數據 with open('data.json', 'r') as f: data = json.load(f) print(data)
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Pygame游戲開發(fā)之太空射擊實戰(zhàn)敵人精靈篇
相信大多數8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經典好玩的一款了,今天我們來自己動手實現它,在編寫學習中回顧過往展望未來,下面開始講解敵人精靈的使用2022-08-08Python自動化運維之Ansible定義主機與組規(guī)則操作詳解
這篇文章主要介紹了Python自動化運維之Ansible定義主機與組規(guī)則操作,結合實例形式分析了自動化運維工具Ansible定義主機與組規(guī)則相關配置操作與注意事項,需要的朋友可以參考下2019-06-06PyTorch基礎之torch.nn.CrossEntropyLoss交叉熵損失
這篇文章主要介紹了PyTorch基礎之torch.nn.CrossEntropyLoss交叉熵損失講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02Python UnicodeEncodeError: ''gbk'' codec can''t encode chara
這篇文章主要介紹了Python UnicodeEncodeError: 'gbk' codec can't encode character 解決方法,需要的朋友可以參考下2015-04-04