【发布时间】:2021-01-08 07:34:17
【问题描述】:
我正在尝试从以下嵌套 json 中提取一些字段并写入单独的 csv 文件:
{
"AccountID": "00000000-0000-0000-0000-000000000000",
"LocationID": "00000000-0000-0000-0000-000000000000",
"CreatedBy": "string",
"ModifiedBy": "string",
"Created": "string",
"Modified": "string",
"LocationData": {
"KeyFields": {},
"DisplayPoint": {
"Type": "Calculated",
"Latitude": 0.0,
"Longitude": 0.0,
"VerificationType": "Client"
},
"BusinessStatus": "Open",
"Status": "Active",
"BusinessName": {
"Name": "string",
"LongName": "string",
"Locale": "Not_set"
},
"BusinessDescription": {
"Description": "string",
"ShortDescription": "string",
"LongDescription": "string"
},
"PrimaryAddress": {
"AddressLine1": "string",
"AddressLine2": "string",
"AddressLine3": "string",
"AddressLine4": "string",
"AddressLine5": "string",
"Neighborhood": "string",
"Locality": "string",
"Region": "string",
"PostalCode": "string",
"CountryCode": "string"
},
"PhoneNumbers": {
"PrimaryPhoneNumber": "string",
"Landline": "string",
"Mobile": "string",
"Fax": "string",
"TollFree": "string"
},
"HoursOfOperationStructured": {
"Su": {
"Ranges": [
{
"StartTime": "string",
"EndTime": "string"
}
],
"State": "Open",
"AdditionalInfo": "string"
},
"Mo": {
"Ranges": [
{
"StartTime": "string",
"EndTime": "string"
}
],
"State": "Open",
"AdditionalInfo": "string"
},
"Tu": {
"Ranges": [
{
"StartTime": "string",
"EndTime": "string"
}
],
"State": "Open",
"AdditionalInfo": "string"
},
"We": {
"Ranges": [
{
"StartTime": "string",
"EndTime": "string"
}
],
"State": "Open",
"AdditionalInfo": "string"
},
"Th": {
"Ranges": [
{
"StartTime": "string",
"EndTime": "string"
}
],
"State": "Open",
"AdditionalInfo": "string"
},
"Fr": {
"Ranges": [
{
"StartTime": "string",
"EndTime": "string"
}
],
"State": "Open",
"AdditionalInfo": "string"
},
"Sa": {
"Ranges": [
{
"StartTime": "string",
"EndTime": "string"
}
],
"State": "Open",
"AdditionalInfo": "string"
},
"SpecialHours": [
{
"Date": "string",
"Ranges": [
{
"StartTime": "string",
"EndTime": "string"
}
],
"State": "Open",
"AdditionalInfo": "string"
}
]
}
}
我可以使用 pandas 和 json_normalize 来展平数据。然后我可以通过引用我想要的字段来提取字段,例如df['LocationData.PrimaryAddress.Locality']。这适用于我需要的所有字段,除了抛出 KeyError 的“StartTime”和“EndTime”范围
当我尝试通过像这样引用它来提取任何特定日期的“开始时间”或“结束时间”范围时:df['LocationData.HoursOfOperationStructured.Su.Ranges.StartTime'] ---- 它返回一个
KeyError: "['LocationData.HoursOfOperationStructured.Su.Ranges.StartTime'] not in index"
如何使用 pandas 访问此文件中所有日期的“开始时间”/“结束时间”列?
【问题讨论】:
标签: json python-3.x pandas dataframe