解析带单引号和双引号的dict时出现语法错误?

2024-04-24 00:48:10 发布

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

所以,我正在使用pytumblr API从Tumblr检索一篇博客文章。我想检索一篇文章并只提取文章内容。技术上Tumblr以dict的形式发送给我,但是格式非常非常混乱。除此之外,它还使用单引号和双引号!我的代码是:

post = client.posts(blogName, type = 'text', tag = 'suggestion', limit = 1)
postformat = str(post[u'posts']).replace("[", "").replace("]", "")
blog = dict(ast.literal_eval(postformat))
print(post[u'body']).replace("<p>", "").replace("</p>", "")

首先,Tumblr给了我一个只有3个键的非常大的字典,但是每个键里面都有一个字典!(???). 所以,我需要获取我要查找的第一个键,然后使用ast将该键的内容转换回dict。当我试着那样做时,我得到了另一个错误。因此,我删除了post前后的括号,并使用ast尝试解释内容。但当我这么做的时候,t在第三行抛出了一个语法错误。这是post[u'posts']的原始格式,非常令人困惑。{但我也把它放在一个溢出的箱子上

^{pr2}$

Tags: api内容字典格式文章tumblrastpost
1条回答
网友
1楼 · 发布于 2024-04-24 00:48:10

语法错误是由于删除了方括号而导致的。在字典的某个地方有一个标签列表,你得到的字符串是:

... u'title': None, u'tags': u'queued', u'suggestion', u'suggestion blog', ...

也就是说,它从字典表示法切换到列表表示法,因为标记周围的[]不见了。在

我怀疑post['posts']只是一个帖子列表,post['posts'][0]是第一个,而{}就是你要找的尸体。在

相关问题 更多 >