执行python脚本并传入json数据格式参数
最近在写一个python的数据统计分析脚本,需要根据json的数据格式参数去进行业务逻辑处理,出了一些情况拿出来一起分享讨论。一下代码纯属示例。
脚本类容很简单,接收一下参数,并使用json包进行一个加载解析。
执行脚本,传入一个json对象数组:
脚本接受到的内容:
json加载解析出错:
可以看到python脚本接收到参数的时候会将双引号剔除,然后该传入参数已经不符合json数据格式,导致转换失败。
解决办法,最外层使用单引号包裹:
可以看到参数成功传入并且成功被解析。
注意:此方法只能在Linux操作系统上成功,在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)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。