【发布时间】:2016-06-05 12:42:04
【问题描述】:
A Python wrapper around the Twitter API. 的 python (https://github.com/bear/python-twitter/blob/master/twitter/api.py) 的 Twitter API 层实现返回一个实例序列,即作为
的返回status=api.GetHomeTimeline().
在内部,我理解它将一个 json 字典列表转换为该序列。
我不得不摆弄一下以找出如何读出所有值。
有一堆类可以直接读出,即:
status[0].user.listed_count
打印值。但是对于
下的值status[0].user_mentions
三个变量:值对存储为一个列表。
为什么要那样做?这是一种常见的编程技术吗?到目前为止,我一直在处理嵌套的 json 字典/列表,这更容易理解,因为可以迭代所有内容。
【问题讨论】:
-
如果你不想要包装器,就不要使用包装器!如果您对 JSON 更满意,那很好。
-
不!我不是在批评它!我偶然发现了这种技术,但我从来没有读过它,所以我想知道:嘿,那是什么,有没有关于它的范式或什么东西,我可以在哪里学习它。这样做肯定有一些特殊的好处,因为 - 在我的理解中 - api 层首先具有 json 格式的数据,然后将其转换为实例。
-
这就是 API 包装器的工作方式,它们抽象出传输层,让您处理结果的本地表示;在这种情况下,为用户、推文等公开 Python 对象。
-
是的,但是我们在 python 中有字典和列表。类的实例是另一种存储数据的 Python 方式吗?
-
请参考。也是我的回答,但简而言之:从一种宿主语言交叉的字典,例如。在服务器端,因为 JSON 在传输到另一种宿主语言(如客户端的 Python)时可能很难解析和存储,因为它们出现在网络上的键序列可能在不同的宿主语言存储结构中发生不同的变化。深度嵌套意味着您必须最终消化更多字节,直到您处于兴趣点为止。展平子树可能会有所帮助。所以也许包装器的用户只是喜欢这种方式......
标签: python class twitter flatten