python中eval()和json.dumps的使用

在python中通过requests.get(url)获取json数据,此时可能需要eval进行解析。

 1 # -*- coding: utf-8 -*-
 2 import requests
 3 
 4 r = requests.get(url='your url address')  # 最基本的GET请求
 5 # print r.content
 6 # print '......................'
 7 # print len(r.json()
 8 # print '......................'
 9 # print len(r.json()['data'])
10 # print '......................'
11 print r.json()['data'][6]['type']          # area
12 print '......................'
13 print r.json()['data'][6]['radarcoor']
14 print '......................'
15 print r.json()['data'][6]['radarcoor'][0]      # 错误
16 print '......................'
17 print eval("r.json()['data'][6]['radarcoor']")[0]           # 错误
18 print '......................'
19 print eval("("+r.json()['data'][6]['radarcoor']+")")[0]       # 正确的写法

此时r.json()返回:

r.json()['data'][6]['radarcoor']返回:

要获取其中每一项,则需要使用eval()函数进行解析:

 

2.json.dumps()

功能:将python中的数据类型转换成str类型

 1 # json.dumps()
 2 mylist = [123, {'name': 'dragon'}, {'location': ('ch', 'nt')}]
 3 encoded_json = json.dumps(mylist)
 4 print isinstance(encoded_json, str)  # True
 5 print encoded_json       # [123, {"name": "dragon"}, {"location": ["ch", "nt"]}]
 6 
 7 # json.loads()
 8 # decoded_json = json.loads(encoded_json)
 9 # print isinstance(decoded_json, list)      # True
10 # print decoded_json     # [123, {u'name': u'dragon'}, {u'location': [u'ch', u'nt']}]
11 
12 # eval()
13 decoded_json = eval(encoded_json)
14 print isinstance(decoded_json, list)  # True
15 print decoded_json       # [123, {'name': 'dragon'}, {'location': ['ch', 'nt']}]

 

转载于:https://www.cnblogs.com/jfl-xx/p/7323669.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Python操作JSON的示例代码: 1. 将Python对象编码为JSON字符串 ```python import json # 将字典编码为JSON字符串 dict1 = {'A': 'a', 'B': 'b', 'C': 'c'} en_json = json.dumps(dict1) print(type(en_json), en_json) # 将列表编码为JSON字符串 lst = ['aa', 'bb', 'cc'] lst_json = json.dumps(lst) print(type(lst_json), lst_json) # 将字符串编码为JSON字符串 s = 'I love you!' s_json = json.dumps(s) print(type(s_json), s_json) # 注意:集合类型的对象是不可以JSON序列化的 _set = {'aaa', 'bbb'} # set_json = json.dumps(_set) # 报错:TypeError: Object of type set is not JSON serializable ``` 2. 将JSON字符串解码为Python对象 ```python import json # 将JSON字符串解码为字典 en_json = '{"A": "a", "B": "b", "C": "c"}' de_json = json.loads(en_json) print(type(de_json), de_json) # 将JSON字符串解码为列表 lst_json = '["aa", "bb", "cc"]' de_json = json.loads(lst_json) print(type(de_json), de_json) # 将JSON字符串解码为字符串 s_json = '"I love you!"' de_json = json.loads(s_json) print(type(de_json), de_json) # 注意:集合类型的对象是不可以JSON序列化的 # set_json = '{"aaa", "bbb"}' # de_json = json.loads(set_json) # 报错:Expecting property name enclosed in double quotes: line 1 column 2 (char 1) ``` 3. 使用eval()解析JSON字符串(不推荐使用) ```python import json # 使用eval()解析JSON字符串 en_json = '{"X": "x", "Y": "y", "Z": "z"}' de_json = eval(en_json) print(type(de_json), de_json) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值