我的项目当前正在python中收到一条JSON消息,我需要从中获取一些信息.出于此目的,我们将其设置为字符串中的一些简单JSON:
jsonStr = '{"one" : "1", "two" : "2", "three" : "3"}'
Run Code Online (Sandbox Code Playgroud)
到目前为止,我一直在使用列表生成JSON请求,json.dumps但是为了做到与此相反,我认为我需要使用它,json.loads但我没有太多运气.任何人都可以给我一个片段,在上面的例子中输入"2"会返回"2"吗?
我正在处理一个 API,不幸的是它返回格式错误(或“奇怪的格式”,而是——感谢@fjarri)JSON,但从积极的一面来看,我认为这可能是我学习一些有关递归以及JSON。这是我用来记录锻炼的应用程序,我正在尝试制作一个备份脚本。
我可以很好地接收 JSON,但即使在requests.get(api_url).json()(或json.loads(requests.get(api_url).text)) 之后,其中一个值仍然是 JSON 编码的字符串。幸运的是,我只需json.loads()字符串即可正确解码为字典。特定的键是可预测的:timezone_id,而其值会有所不同(因为数据已记录在多个时区)。例如,解码后,可能是:dumped to file as "timezone_id": {\"name\":\"America/Denver\",\"seconds\":\"-21600\"}",或loaded into Python as'timezone_id': '{"name":"America/Denver","seconds":"-21600"}'
问题是我使用这个 API 来检索相当数量的数据,其中有多层字典和列表,并且双编码timezone_id发生在多个级别。
这是我迄今为止所做的一些示例数据的工作,但看起来我离基础还很远。
#! /usr/bin/env python3
import json
from pprint import pprint
my_input = r"""{
"hasMore": false,
"checkins": [
{
"timestamp": 1353193745000,
"timezone_id": "{\"name\":\"America/Denver\",\"seconds\":\"-21600\"}",
"privacy_groups": [
"private"
],
"meta": {
"client_version": "3.0",
"uuid": "fake_UUID"
},
"client_id": "fake_client_id",
"workout_name": "Workout (Nov 17, 2012)",
"fitness_workout_json": {
"exercise_logs": …Run Code Online (Sandbox Code Playgroud) 这是我的代码:
a = '''{"title":"sss","body":"wwww?aaa
<a href='#' onclick='logout()' >fff</a>
","data":{"status":0,"userName":"www","userId":"433"}}'''
a = eval(a)
print a.title
Run Code Online (Sandbox Code Playgroud)
但它显示错误:
那我该怎么办
谢谢