将 OpenCorporate API 数据转换为结构化 CSV
Taking OpenCorporate API data into a structured CSV
我目前正在努力弄清楚如何使用 pandas 从 OpenCorporate API 中抓取数据并将其插入到 CSV 文件中。我不太确定我哪里搞砸了。
import pandas as pd
df = pd.read_json('https://api.opencorporates.com/companies/search?q=pwc')
data = df['companies']['company'][0]
result = {'name':data['timestamp'],
'company_number':data[0]['company_number'],
'jurisdiction_code':data[0]['jurisdiction_code'],
'incorporation_date':data[0]['incorporation_date'],
'dissolution_date':data[0]['dissolution_date'],
'company_type':data[0]['company_type'],
'registry_url':data[0]['registry_url'],
'branch':data[0]['branch'],
'opencorporates_url':data[0]['opencorporates_url'],
'previous_names':data[0]['previous_names'],
'source':data[0]['source'],
'url':data[0]['url'],
'registered_address':data[0]['registered_address'],
}
df1 = pd.DataFrame(result, columns=['name', 'company_number', 'jurisdiction_code', 'incorporation_date', 'dissolution_date', 'company_type', 'registry_url', 'branch', 'opencorporates_url', 'previous_names', 'source', 'url', 'registered_address'])
df1.to_csv('company.csv', index=False, encoding='utf-8')
使用 requests
获取 json
数据,然后使用 pd.io.json.json_normalize
来拉平响应。
import requests
json_data = requests.get('https://api.opencorporates.com/companies/search?q=pwc').json()
from pandas.io.json import json_normalize
df = None
for row in json_data["results"]["companies"]:
if df is None:
df = json_normalize(row["company"])
else:
df = pd.concat([df, json_normalize(row["company"])])
然后您使用问题中描述的 df.to_csv()
方法将 DataFrame
写入 csv
。
您可能更容易批量访问 OpenCorporates 数据库。
OpenCorporates 在封闭式许可下为商业用户提供访问权限,并为能够在类似共享的开放数据许可下共享结果的记者、学者和非政府组织提供开放数据。许可证可在此处获得:https://opencorporates.com/info/licence
我目前正在努力弄清楚如何使用 pandas 从 OpenCorporate API 中抓取数据并将其插入到 CSV 文件中。我不太确定我哪里搞砸了。
import pandas as pd
df = pd.read_json('https://api.opencorporates.com/companies/search?q=pwc')
data = df['companies']['company'][0]
result = {'name':data['timestamp'],
'company_number':data[0]['company_number'],
'jurisdiction_code':data[0]['jurisdiction_code'],
'incorporation_date':data[0]['incorporation_date'],
'dissolution_date':data[0]['dissolution_date'],
'company_type':data[0]['company_type'],
'registry_url':data[0]['registry_url'],
'branch':data[0]['branch'],
'opencorporates_url':data[0]['opencorporates_url'],
'previous_names':data[0]['previous_names'],
'source':data[0]['source'],
'url':data[0]['url'],
'registered_address':data[0]['registered_address'],
}
df1 = pd.DataFrame(result, columns=['name', 'company_number', 'jurisdiction_code', 'incorporation_date', 'dissolution_date', 'company_type', 'registry_url', 'branch', 'opencorporates_url', 'previous_names', 'source', 'url', 'registered_address'])
df1.to_csv('company.csv', index=False, encoding='utf-8')
使用 requests
获取 json
数据,然后使用 pd.io.json.json_normalize
来拉平响应。
import requests
json_data = requests.get('https://api.opencorporates.com/companies/search?q=pwc').json()
from pandas.io.json import json_normalize
df = None
for row in json_data["results"]["companies"]:
if df is None:
df = json_normalize(row["company"])
else:
df = pd.concat([df, json_normalize(row["company"])])
然后您使用问题中描述的 df.to_csv()
方法将 DataFrame
写入 csv
。
您可能更容易批量访问 OpenCorporates 数据库。
OpenCorporates 在封闭式许可下为商业用户提供访问权限,并为能够在类似共享的开放数据许可下共享结果的记者、学者和非政府组织提供开放数据。许可证可在此处获得:https://opencorporates.com/info/licence