python处理json⽂件详解_python解析json⽂件⽅法
我们在获取⼀份第三⽅的数据后,需要进⾏数据的分析,但发现它是json的⽂件形式并不能直接使⽤。这就需要⽤到解析的⽅法,我们在python中就可以完成这样操作。下⾯就json说进⾏简单说明,然后理清解析json⽂件 的思路,最后把相关的解析代码分享给⼤家,⼀起往下看具体内容。
宝塔建站系统1.json说明
json就是⼀种长得像嵌套字典的字符串。数据被“{}”和“[]”层层包裹,需要“拆包”才能拿到我们需要的数据。
两种结构:
sqlserver创建视图语句
(1)“名称/值”对的集合(A collection of name/value pairs)。不同的编程语⾔中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
(2)值的有序列表(An ordered list of values)。在⼤部分语⾔中,它被实现为数组(array),⽮量(vector),列表(list),序列(sequence)。
2.解析思路
(1)新建两个函数A和B。
(2)函数 A处理字典数据,被调⽤后,判断传递的参数,如果参数为字典,则调⽤⾃⾝;
(3)如果是列表或者元组,则调⽤列表处理函数B;
(4)函数 B处理列表,被调⽤后,判断传递的参数,如果参数为列表或者元组,则调⽤⾃⾝;
(5)如果是字典,则调⽤字典处理函数A。spark自带的资源管理框架
3.实例
代码中的get_target_value函数为A函数,_get_value为B函数。# 处理嵌套json⽂件中指定关键字
# 处理字典值
def get_target_value(key, dic, tmp_list):
"""telnet unable to connect
:param key: ⽬标key值
:param dic: JSON数据
:param tmp_list: ⽤于存储获取的数据
:return: list
"""
if not isinstance(dic, dict) or not isinstance(tmp_list, list): # 对传⼊数据进⾏格式校验
return 'argv[1] not an dict or argv[-1] not an list '
if key in dic.keys():
tmp_list.append(dic[key]) # 传⼊数据存在则存⼊tmp_list
for value in dic.values(): # 传⼊数据不符合则对其value值进⾏遍历
if isinstance(value, dict):
python请求并解析json数据get_target_value(key, value, tmp_list) # 传⼊数据的value值是字典,则直接调⽤⾃⾝
performselectoronmainthreadelif isinstance(value, (list, tuple)):
_get_value(key, value, tmp_list) # 传⼊数据的value值是列表或者元组,则调⽤_get_value
return tmp_list
# 处理元组或列表值
def _get_value(key, val, tmp_list):
for val_ in val:
if isinstance(val_, dict):
get_target_value(key, val_, tmp_list) # 传⼊数据的value值是字典,则调⽤get_target_value
elif isinstance(val_, (list, tuple)):
_get_value(key, val_, tmp_list)
以上就是python解析json⽂件的⽅法,⼤家可以先对解析的流程进⾏理解,在弄清楚基本的步骤后,就可以展开上⾯的解析json操作啦。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论