值错误:字符串格式错误

2024-06-01 00:35:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用一个API,该API返回以下unicode作为响应:

    dd = u"""{"meta":{"request":{"granularity":"Weekly","main_domain_only":false,
"domain":"borivali.me",
    "country":"world"},"status":"Success",
"last_updated":"2016-05-09"},"bounce_rate":[{"date":"2016-04-12","bounce_rate":0.5},
    {"date":"2016-04-19","bounce_rate":0.13355382826388454},
{"date":"2016-04-26","bounce_rate":0.0},
    {"date":"2016-05-03","bounce_rate":0.23602940883106352}]}"""

我试图用以下方式分析这些信息:

ddd = ast.literal_eval(dd)
print ddd

但是,我得到以下错误:

ValueError: malformed string

我的代码怎么了?

PS:dd存储的是unicode字符串,而不是字典。


Tags: apifalseonlydateratemainrequestdomain
1条回答
网友
1楼 · 发布于 2024-06-01 00:35:45

假设以下定义正确:

s = u"""{"meta":{"request":{"granularity":"Weekly","main_domain_only":false,
"domain":"borivali.me",
    "country":"world"},"status":"Success",
"last_updated":"2016-05-09"},"bounce_rate":[{"date":"2016-04-12","bounce_rate":0.5},
    {"date":"2016-04-19","bounce_rate":0.13355382826388454},
{"date":"2016-04-26","bounce_rate":0.0},
    {"date":"2016-05-03","bounce_rate":0.23602940883106352}]}"""

给定该声明,s是JSON文档,可以通过json库解析为Python对象。

import json
p = json.loads(s)

ast模块用于反序列化Python对象的repr,并且repr在一般情况下不等于JSON序列化。以下关系成立(至少对于简单的Python类型,在JSON标准-列表、dict和字符串中定义良好)。

d == ast.literal_eval(repr(d))
d == json.loads(json.dumps(d))

相关问题 更多 >