Как отправить вывод Curl непосредственно в базу данных postgres - PullRequest
0 голосов
/ 25 сентября 2018

Я хочу отправить вывод напрямую в базу данных postgres!это возможно, я должен сначала преобразовать его в другой формат!любая идея!!

curl -sG https://peeringdb.com/api/netixlan --data-urlencode asn=58717 \
  --data-urlencode fields=ix_id,ipaddr4,ipaddr6,speed | jq -c '.data[]'

Вывод:

{"ix_id": 215, "скорость": 1000, "ipaddr4": "198.32.167.102", "ipaddr6": null} {"ix_id ": 158," скорость ": 10000," ipaddr4 ":" 27.111.228.8 "," ipaddr6 ":" 2001: de8: 4 :: 5: 8717: 1 "} {" ix_id ": 158," скорость ": 10000, "ipaddr4": "27.111.229.92", "ipaddr6": "2001: de8: 4 :: 5: 8717: 2"} {"ix_id": 429, "скорость": 10000, "ipaddr4": "103.16.102.35" , "ipaddr6": "2001: de8: 12: 100 :: 35"}

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете попробовать использовать Pandas и sqlalchemy:

import pandas as pd
from sqlalchemy import create_engine

#Define your connection to the DB:
engine = create_engine('postgresql://username:password@servername:port/dbname')

#Convert your json to a Pandas Dataframe:
df = pd.read_json(json_file) # Your json goes here, 
     #or just create a dataframe from the curl dictionary output

#Sends the DataFrame to postgres:
df.to_sql('tablename', engine, if_exists='replace', schema='public')
...