我正在处理一个数据处理任务。你知道吗
我有两个python脚本,每个脚本实现一个单独的函数,但它们对相同的数据进行操作,我认为它们可以组合成一个单一的工作流,但我想不出实现这一点的最合理的方法。你知道吗
数据文件是here,是JSON,但它有两个不同的组件。你知道吗
第一部分是这样的:
{
"links": {
"self": "http://localhost:2510/api/v2/jobs?skills=data%20science"
},
"data": [
{
"id": 121,
"type": "job",
"attributes": {
"title": "Data Scientist",
"date": "2014-01-22T15:25:00.000Z",
"description": "Data scientists are in increasingly high demand amongst tech companies in London. Generally a combination of business acumen and technical skills are sought. Big data experience ..."
},
"relationships": {
"location": {
"links": {
"self": "http://localhost:2510/api/v2/jobs/121/location"
},
"data": {
"type": "location",
"id": 3
}
},
"country": {
"links": {
"self": "http://localhost:2510/api/v2/jobs/121/country"
},
"data": {
"type": "country",
"id": 1
}
},
它由第一个python脚本处理,这里:
import json
from collections import defaultdict
from pprint import pprint
with open('data-science.txt') as data_file:
data = json.load(data_file)
locations = defaultdict(int)
for item in data['data']:
location = item['relationships']['location']['data']['id']
locations[location] += 1
pprint(locations)
呈现此窗体的数据:
1: 6,
2: 20,
3: 2673,
4: 126,
5: 459,
6: 346,
8: 11,
9: 68,
10: 82,
这些是位置"id"
和分配给该位置的记录数。你知道吗
JSON对象的另一部分如下所示:
"included": [
{
"id": 3,
"type": "location",
"attributes": {
"name": "Victoria",
"coord": [
51.503378,
-0.139134
]
}
},
并由以下python文件处理:
import json
from collections import defaultdict
from pprint import pprint
with open('data-science.txt') as data_file:
data = json.load(data_file)
locations = defaultdict(int)
for record in data['included']:
id = record.get('id', None)
name = record.get('attributes', {}).get('name', None)
coord = record.get('attributes', {}).get('coord', None)
print(id, name, coord)
它以这种格式输出数据:
3 Victoria [51.503378, -0.139134]
1 United Kingdom None
71 data science None
32 None None
3 Victoria [51.503378, -0.139134]
1 United Kingdom None
1 data mining None
22 data analysis None
33 sdlc None
38 artificial intelligence None
39 machine learning None
40 software development None
71 data science None
93 devops None
63 None None
52 Cubitt Town [51.505199, -0.018848]
我实际上想要的是最终的输出是这样的:
3, Victoria, [51.503378, -0.139134], 2673
其中2673
引用第一个脚本中的作业计数。你知道吗
如果它没有任何坐标,例如[51.503378, -0.139134]
,我可以把它扔掉。你知道吗
我确信将这些脚本组合在一起并得到输出是可能的,但我不是一个全面的思考者,我不知道怎么做。你知道吗
所有真实的项目文件live here。你知道吗
使用
functions
是组合这两个脚本的一种方法,毕竟它们处理相同的数据。因此,您应该为每个处理逻辑块创建一个函数,然后将结果合并到一起:函数可以有更好的名称,但这应该可以实现您正在寻找的统一。你知道吗
相关问题 更多 >
编程相关推荐