esi数据整理笔记

简介

最近这段时间刷怪刷累了,于是在尝试进行对市场数据的整理,在闲暇时间做一些事情。

最开始的时候,我把esi、sso、seat之类的东西全部搞混了,导致了在深更半夜向seat需求调取数据权限的眼中灾难性spy行为(哭泣.jpg)。为了避免更多人弄混变成spy(x),这些东西之间的区别必须弄清楚。

仅在确定无疑需求seat权限时再开口。SeAT权限对联盟十分重要,随意请求不仅会令安排任务的人感到麻烦,还会令自己有相当的spy嫌疑。

esi、sso和seat

  • ESI是EVE Swagger Interface,官方的数据提取。
  • SSO是单点登录,登陆一次赋予一个token,并给予权限。
  • SeAT是一个公司/联盟的管理工具。

第零步 清晰目的

数据是有形之物,但要表达出某种通俗的概念、传达出某种清晰的观感、派上某种具体的用场,还需要从中寻找无形的线索。不仅要做,还要明白为什么要做。

  • 这些数据会给(我/公司/联盟/…)带来好处?
  • 自己心目中的对象能够如何使用这些数据?
  • 能够带来什么改变?带来多大的好处?

我们在例子中使用的是市场数据。举例而言,市场数据十分单调而无聊、所能提供的信息也并不如同pap一般直白。我们所拥有的只有交易量、最高/最低价格、均价……而这一切显然没有办法直接读出多少有用的信息。

为了表达愿景和完成目的,一些工具是必不可少的。

第一步 获取数据

首先打开ESI页面,将会看到一个界面、里面列举出了具体的项目。

image

可以使用https://www.fuzzwork.co.uk/api/typeid.php这个API来获取物品id(上述的type_id)。

至于如何具体获得数据略过不讲,进行的方式可以是多样化的。所获得的数据结果例子为:
[{“average”:3.0,“date”:“2019-01-08”,“highest”:3.0,“lowest”:3.0,“order_count”:1,“volume”:91496112},{“average”:3.02,“date”:“2019-01-20”,“highest”:3.02,“lowest”:3.02,“order_count”:1,“volume”:1183543},(…略)

第二步 导入数据

这里将数据导入excel。它是十分有用的生产工具,无论是对于专业用途、或者是我们这种…呃,娱乐用途,都能派上很大的用场。它能够节省很多时间。

image

自网站导入数据,例如导入https://esi.evetech.net/latest/markets/10000040/history/?datasource=tranquility&type_id=631

image

获取到的数据结构将是record,在数据>高级编辑器中随意写一个M语言脚本即可将其转换成列表。

image

例如对于物品,可以这么写:

简单脚本

let
源 = Json.Document(Web.Contents(“https://esi.evetech.net/latest/markets/10000040/history/?datasource=tranquility&type_id=631”)),
转换为表 = Table.FromList(源, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
out = Table.ExpandRecordColumn(转换为表, “Column1”, {“date”, “highest”, “lowest”, “average”, “order_count”, “volume”})
in
out


需要注意的是,并不是对于所有类型的数据、这一代码都能够生效。你需要为具体情况(和自己的需求)来决定。

成果:

image

1 个赞

继续来点

虽然看不懂,不过还是顶一顶

该主题在最后一个回复创建后90天后自动关闭。不再允许新的回复。