【发布时间】:2018-10-27 18:27:21
【问题描述】:
我正在尝试将 JSON API 结果导出为格式正确的 CSV。
注意:SmartMover API 可以通过输入个人地址、名字、姓氏等来帮助确定个人地址是否是最新的。
以下是我的 JSON 格式的 API 结果。
JSON API 结果
{'CASSReportLink': 'https://smartmover.melissadata.net/v3/Reports/CASSReport.aspx?tkenrpt=YvBDs39g52jKhLJyl5RgHKpuj5HwDMe1pE2lcQrczqRiG3/3y5yMlixj5S7lIvLJpDyAOkD8fE8vDCg56s3UogNuAkdTbS2aqoYF5FvyovUjnXzoQaHaL8TaQbwyCQ2RB7tIlszGy5+LqFnI7Xdr6sjYX93FDkSGei6Omck5OF4=', 'NCOAReportLink': 'https://smartmover.melissadata.net/v3/Reports/NCOAReport.aspx?tkenrpt=8anQa424W7NYg8ueROFirapuj5HwDMe1pE2lcQrczqRiG3/3y5yMlixj5S7lIvLJpDyAOkD8fE8vDCg56s3UogNuAkdTbS2aqoYF5FvyovUjnXzoQaHaL8TaQbwyCQ2RB7tIlszGy5+LqFnI7Xdr6sjYX93FDkSGei6Omck5OF4=', '记录': [{'AddressExtras': '', 'AddressKey': '78704,78704', 'AddressLine1' : ' , , ,STE C-100 ', 'AddressLine2': '1009 W MONROE ST ,1600 S 5TH ST ,1008 W MILTON ST ,3939 BEE CAVES RD ', 'AddressTypeCode': '', 'BaseMelissaAddressKey': '' , 'CarrierRoute': '', 'City': 'Austin ,Austin ,Austin ,Austin', 'CityAbbreviation': 'Austin ,Austin ,Austin ,Austin ', 'CompanyName': '', 'CountryCode': 'US', 'CountryName': 'United States', 'DeliveryIndicator': '', 'DeliveryPointCheckDigit': '', 'DeliveryPointCode': '','MelissaAddressKey':'','MoveEffectiveDate':'','MoveTypeCode':'','PostalCode':'78704,78704,78704,78746','RecordID':'1','Results': 'AE07', 'State': '', 'StateName': 'TX ,TX ,TX ,TX', 'Urbanization': ''}], 'TotalRecords': '1', 'TransmissionReference': '1353', “传输结果”:“”,“版本”:“4.0.4.48”} 【2.6s完成】
从这个结果中,我想在 AddressLine2 标头中提取 4 个输出值。 (我在 API 中输入了 4 个值)例如,
'Records':........'AddressLine2':'1009 W MONROE ST',............
所以我编写了以下 Python 查询:
r = response.json()
df = pd.read_csv(r"C:\users\testu\documents\travis_test.csv",delimiter = ',',na_values="nan")
with open(r'C:\users\testu\documents\travis3.csv', 'w+') as f:
cf = csv.writer(f)
cf.writerow(r['Records'][0]['AddressLine2'].split(','))
print(r['Records'][0]['AddressLine2'].split(','))
但是,它只提取没有 Header AND 水平的值,如下图所示:
如何使用 Header (AddressLine2) AND 垂直提取值?
感谢您的帮助!
【问题讨论】: