首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在用python映射地理点之后获得一些原始的json字段?

如何在用python映射地理点之后获得一些原始的json字段?
EN

Stack Overflow用户
提问于 2020-06-05 21:29:50
回答 1查看 61关注 0票数 0

我想用地面图来获取一些原始数据。我需要一个人用"geo“来获得卫星名和时间戳

我使用python从Restful获得数据。

代码语言:javascript
运行
复制
settings = { "settings": {
                 "number_of_shards":1,
                  'number_of_replicas':0
                 },
      "mappings" : { 
           "document" : {
                "properties":{
                    "geo": {
                       "type": "geo_point"
                            }
                          }
                        } 
                     } 
                  }

es.indices.create(index = "new", body=settings)

def collect_data():
  data = requests.get(url = URL).json() 
  del data['positions'][1]

  new_data = {'geo':{'lat':data['positions'][0]['satlatitude'],
               'lon':data['positions'][0]['satlongitude']}}, {data['info'][0]['satname']} ,   
                {data['positions'][0]['timestamp']} 



 es.index(index='new', doc_type='document', body=new_data)
schedule.every(10).seconds.do(collect_data)


while True:
 schedule.run_pending()
 time.sleep(1) 

Error received:
SerializationError: (({'geo': {'lat': 37.43662067, 'lon': -26.09384821}}, {1591391688}), 
TypeError("Unable to serialize {1591391688} (type: <class 'set'>)"))

RESTful json数据样本-- {'info':{'satname':{‘satname’,'satid':25544,'transactionscount':0},‘位置’:[{“卫星纬度”:28.89539607,‘卫星经度’:90.44547739,‘卫星高度’:420.36,‘方位’:12.46,‘仰角’:-52.81,'ra':215.55022984,'dec':-5.00234017,‘时间戳’:1591196844,‘黯然失色’:

代码语言:javascript
运行
复制
 True}]}

我需要"geo","satnam“和”time戳“,我想知道如何才能得到正确的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-06 04:04:17

看起来,您在没有键的情况下设置时间戳和satname,尝试以下操作来处理数据:

代码语言:javascript
运行
复制
import json
from datetime import datetime

response_json = '''
{
    "info": {
        "satname": "SPACE STATION",
        "satid": 25544,
        "transactionscount": 0
    },
    "positions": [
        {
            "satlatitude": 28.89539607,
            "satlongitude": 90.44547739,
            "sataltitude": 420.36,
            "azimuth": 12.46,
            "elevation": -52.81,
            "ra": 215.55022984,
            "dec": -5.00234017,
            "timestamp": 1591196844,
            "eclipsed": true
        }
    ]
}
'''

response_data = json.loads(response_json)



def process_data(data):
    return {
        'satname': response_data['info']['satname'],
        # comvert unix timestamp to iso time
        'timestamp': datetime.fromtimestamp(response_data['positions'][0]['timestamp']).isoformat(),
        'geo': {
            'lat': response_data['positions'][0]['satlatitude'],
            'lon': response_data['positions'][0]['satlongitude']
        }
    }

print(process_data(response_data))

输出:

代码语言:javascript
运行
复制
{'satname': 'SPACE STATION', 'timestamp': '2020-06-03T15:07:24', 'geo': {'lat': 28.89539607, 'lon': 90.44547739}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62224380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档