執(zhí)行python腳本并傳入json數(shù)據(jù)格式參數(shù)方式
執(zhí)行python腳本并傳入json數(shù)據(jù)格式參數(shù)
最近在寫一個(gè)python的數(shù)據(jù)統(tǒng)計(jì)分析腳本,需要根據(jù)json的數(shù)據(jù)格式參數(shù)去進(jìn)行業(yè)務(wù)邏輯處理,出了一些情況拿出來一起分享討論。一下代碼純屬示例。

腳本類容很簡(jiǎn)單,接收一下參數(shù),并使用json包進(jìn)行一個(gè)加載解析。
執(zhí)行腳本,傳入一個(gè)json對(duì)象數(shù)組:
![]()
腳本接受到的內(nèi)容:
![]()
json加載解析出錯(cuò):

可以看到python腳本接收到參數(shù)的時(shí)候會(huì)將雙引號(hào)剔除,然后該傳入?yún)?shù)已經(jīng)不符合json數(shù)據(jù)格式,導(dǎo)致轉(zhuǎn)換失敗。
解決辦法,最外層使用單引號(hào)包裹:

可以看到參數(shù)成功傳入并且成功被解析。
注意:此方法只能在Linux操作系統(tǒng)上成功,在Windows上測(cè)試依然失敗,不知道原因,有了解的或者有更好的方法的歡迎評(píng)論。
Windows上測(cè)試結(jié)果:

python解析JSON數(shù)據(jù)
JSON(JavaScript Object Natation)是一種輕量級(jí)的數(shù)據(jù)交換格式,其基于ECMAScript的一個(gè)子集。Python中提供了json模塊來對(duì)JSON數(shù)據(jù)進(jìn)行編碼和解碼。
json模塊包含以下兩個(gè)函數(shù)
json.dumps():對(duì)數(shù)據(jù)進(jìn)行編碼jsonloads():對(duì)數(shù)據(jù)進(jìn)行解碼
示例
import json
data1 = {
'id': '001',
'name': '李華',
'date': '20220115'
}
json_str = json.dumps(data1)
print("Python 原始數(shù)據(jù):", data1, type(data1))
print("Python 原始數(shù)據(jù):", repr(data1), type(repr(data1)))
print("JSON 對(duì)象:", json_str, type(json_str))
程序運(yùn)行結(jié)果:

關(guān)于repr()的解釋,一種可以參考是說法是: 函數(shù)str() 用于將值轉(zhuǎn)化為適于人閱讀的形式,而repr() 轉(zhuǎn)化為供解釋器讀取的形式。
data2 = json.loads(json_str)
print("data2['name']:", data2["name"])
print("data2['id']:", data2["id"])
程序運(yùn)行結(jié)果:

如果是處理json文件,則需要使用**json.dump()和json.load()**來編碼和解碼JSON數(shù)據(jù),代碼如下:
# 寫入數(shù)據(jù)
with open('data.json', 'w') as f:
json.dump(data1, f)
# 讀取數(shù)據(jù)
with open('data.json', 'r') as f:
data = json.load(f)
print(data)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python存儲(chǔ)json數(shù)據(jù)發(fā)生亂碼的解決方法
- Python實(shí)現(xiàn)提取JSON文件中指定數(shù)據(jù)并保存至CSV或Excel內(nèi)
- Python中使用json.load()和json.loads()加載json數(shù)據(jù)的方法實(shí)例
- 使用python如何提取JSON數(shù)據(jù)指定內(nèi)容
- Python解析JSON數(shù)據(jù)的基本方法實(shí)例代碼
- 詳解Python中如何將數(shù)據(jù)存儲(chǔ)為json格式的文件
- python 調(diào)用API接口 獲取和解析 Json數(shù)據(jù)
- Python?JSON數(shù)據(jù)解析過程(最新推薦)
相關(guān)文章
python爬蟲分布式獲取數(shù)據(jù)的實(shí)例方法
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于python爬蟲分布式獲取數(shù)據(jù)的實(shí)例方法,有興趣的朋友們可以參考下。2020-11-11
python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個(gè)數(shù)實(shí)例
今天小編就為大家分享一篇python 在指定范圍內(nèi)隨機(jī)生成不重復(fù)的n個(gè)數(shù)實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
20個(gè)Python?random模塊常用函數(shù)的應(yīng)用與代碼示例
隨機(jī)數(shù)在計(jì)算機(jī)科學(xué)和數(shù)據(jù)科學(xué)領(lǐng)域中扮演著重要角色,Python的標(biāo)準(zhǔn)庫中提供了random模塊,用于生成各種隨機(jī)數(shù),本文將深入探討random模塊的各種函數(shù),以及它們的應(yīng)用場(chǎng)景和代碼示例,需要的可以參考下2024-03-03
Python calendar日歷模塊的應(yīng)用案例演示
calendar模塊是python用來處理日歷的模塊,通過不同的api和格式輸出多種形式的日歷格式,下面就通過不同的api和參數(shù)來輸出和學(xué)習(xí)calendar模塊的用法2023-06-06
Python相關(guān)庫設(shè)置技巧保護(hù)你的C盤
這篇文章主要為大家介紹了Python相關(guān)庫設(shè)置,保護(hù)你的C盤技巧詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
可能是最全面的 Python 字符串拼接總結(jié)【收藏】
在 Python 中字符串連接有多種方式,這里簡(jiǎn)單做個(gè)總結(jié),應(yīng)該是比較全面的了,方便以后查閱,需要的朋友可以參考下2018-07-07
Python的Django框架中使用SQLAlchemy操作數(shù)據(jù)庫的教程
SQLAlchemy是Python一個(gè)專門的數(shù)據(jù)庫管理工具,如果對(duì)Django ORM覺得有些生疏的話完全可以結(jié)合SQLAlchemy,這里我們就來總結(jié)一下Python的Django框架中使用SQLAlchemy操作數(shù)據(jù)庫的教程2016-06-06
Python中用函數(shù)作為返回值和實(shí)現(xiàn)閉包的教程
這篇文章主要介紹了Python中用函數(shù)作為返回值和實(shí)現(xiàn)閉包的教程,代碼基于Python2.x版本,需要的朋友可以參考下2015-04-04

