0

JSON以下のデータをpythonを使用して変換しようとしていますimport json。実際、エコーアウトして以下を見つけるまで、JSONデータを受け取っていると思っていました。

残念ながら、私は以下のデータを SOAP サービスから受け取っているので、どのように受け取るかを制御できません。

とにかく、以下に解析可能な構造があるように見えますか? それとも、1行ずつ調べて手動で変換する必要がありますか? 一部の変数名は XML のように見えたり、元は XML だったりしますが、これまでに見たものとはまったく異なります。

私が興味があるのは、stopData[]配列の値だけです。それが物事を単純化するのであれば、半分以上です!

念のため、以下のように JSON パーサーで解析してみましたが、認識されませんでした。

    data  = json.loads(rawData)
    data['StopData']

I also tried:    
    data = json.loads(rawData)

しかし、どちらも機能しませんでした。これが私が扱うデータです:

('schema', [(schema){
   _id = "NewDataSet"
   element[] = 
      (element){
         _UseCurrentLocale = "true"
         _IsDataSet = "true"
         _MainDataTable = "StopData"
         _name = "NewDataSet"
         complexType[] = 
            (complexType){
               choice[] = 
                  (choice){
                     _maxOccurs = "unbounded"
                     _minOccurs = "0"
                     element[] = 
                        (element){
                           _name = "StopData"
                           complexType[] = 
                              (complexType){
                                 sequence[] = 
                                    (sequence){
                                       element[] = 
                                          (element){
                                             _type = "xs:dateTime"
                                             _name = "ServiceDelivery_ResponseTimestamp"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "ServiceDelivery_ProducerRef"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:boolean"
                                             _name = "ServiceDelivery_Status"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:boolean"
                                             _name = "ServiceDelivery_MoreData"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "StopMonitoringDelivery_Version"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:dateTime"
                                             _name = "StopMonitoringDelivery_ResponseTimestamp"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "StopMonitoringDelivery_RequestMessageRef"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:dateTime"
                                             _name = "MonitoredStopVisit_RecordedAtTime"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "MonitoredStopVisit_MonitoringRef"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "MonitoredVehicleJourney_LineRef"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "MonitoredVehicleJourney_DirectionRef"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "FramedVehicleJourneyRef_DataFrameRef"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "FramedVehicleJourneyRef_DatedVehicleJourneyRef"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "MonitoredVehicleJourney_PublishedLineName"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "MonitoredVehicleJourney_OperatorRef"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "MonitoredVehicleJourney_DestinationRef"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "MonitoredVehicleJourney_DestinationName"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:boolean"
                                             _name = "MonitoredVehicleJourney_Monitored"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:boolean"
                                             _name = "MonitoredVehicleJourney_InCongestion"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "MonitoredVehicleJourney_BlockRef"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "MonitoredVehicleJourney_VehicleRef"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:string"
                                             _name = "MonitoredCall_VisitNumber"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:boolean"
                                             _name = "MonitoredCall_VehicleAtStop"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:dateTime"
                                             _name = "MonitoredCall_AimedArrivalTime"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:dateTime"
                                             _name = "MonitoredCall_ExpectedArrivalTime"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:dateTime"
                                             _name = "MonitoredCall_AimedDepartureTime"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:dateTime"
                                             _name = "MonitoredCall_ExpectedDepartureTime"
                                             _minOccurs = "0"
                                          },
                                          (element){
                                             _type = "xs:dateTime"
                                             _name = "Timestamp"
                                             _minOccurs = "0"
                                          },
                                    },
                              },
                        },
                  },
            },
      },
 }])('diffgram', [(diffgram){
   DocumentElement[] = 
      (DocumentElement){
         StopData[] = 
            (StopData){
               _id = "StopData1"
               _rowOrder = "0"
               ServiceDelivery_ResponseTimestamp[] = 
                  "2013-01-21T20:57:40.33+00:00",
               ServiceDelivery_ProducerRef[] = 
                  "bac",
               ServiceDelivery_Status[] = 
                  "true",
               ServiceDelivery_MoreData[] = 
                  "false",
               StopMonitoringDelivery_Version[] = 
                  "1.0",
               StopMonitoringDelivery_ResponseTimestamp[] = 
                  "2013-01-21T20:57:40.333+00:00",
               StopMonitoringDelivery_RequestMessageRef[] = 
                  "0",
               MonitoredStopVisit_RecordedAtTime[] = 
                  "2013-01-21T20:57:40.333+00:00",
               MonitoredStopVisit_MonitoringRef[] = 
                  "02371",
               MonitoredVehicleJourney_LineRef[] = 
                  "27",
               MonitoredVehicleJourney_DirectionRef[] = 
                  "Inbound",
               FramedVehicleJourneyRef_DataFrameRef[] = 
                  "2013-01-21",
               FramedVehicleJourneyRef_DatedVehicleJourneyRef[] = 
                  "4215",
               MonitoredVehicleJourney_PublishedLineName[] = 
                  "77A",
               MonitoredVehicleJourney_OperatorRef[] = 
                  "bac",
               MonitoredVehicleJourney_DestinationRef[] = 
                  "00354",
               MonitoredVehicleJourney_DestinationName[] = 
                  "Ringsend Rd via Tymon Park",
               MonitoredVehicleJourney_Monitored[] = 
                  "true",
               MonitoredVehicleJourney_InCongestion[] = 
                  "false",
               MonitoredVehicleJourney_BlockRef[] = 
                  "027023A:34",
               MonitoredVehicleJourney_VehicleRef[] = 
                  "33521",
               MonitoredCall_VisitNumber[] = 
                  "39",
               MonitoredCall_VehicleAtStop[] = 
                  "false",
               MonitoredCall_AimedArrivalTime[] = 
                  "2013-01-21T21:21:00+00:00",
               MonitoredCall_ExpectedArrivalTime[] = 
                  "2013-01-21T21:20:12+00:00",
               MonitoredCall_AimedDepartureTime[] = 
                  "2013-01-21T21:21:00+00:00",
               MonitoredCall_ExpectedDepartureTime[] = 
                  "2013-01-21T21:20:12+00:00",
               Timestamp[] = 
                  "2013-01-21T20:57:40.627+00:00",
            },
            (StopData){
               _id = "StopData2"
               _rowOrder = "1"
               ServiceDelivery_ResponseTimestamp[] = 
                  "2013-01-21T20:57:40.33+00:00",
               ServiceDelivery_ProducerRef[] = 
                  "bac",
               ServiceDelivery_Status[] = 
                  "true",
               ServiceDelivery_MoreData[] = 
                  "false",
               StopMonitoringDelivery_Version[] = 
                  "1.0",
               StopMonitoringDelivery_ResponseTimestamp[] = 
                  "2013-01-21T20:57:40.333+00:00",
               StopMonitoringDelivery_RequestMessageRef[] = 
                  "0",
               MonitoredStopVisit_RecordedAtTime[] = 
                  "2013-01-21T20:57:40.333+00:00",
               MonitoredStopVisit_MonitoringRef[] = 
                  "02371",
               MonitoredVehicleJourney_LineRef[] = 
                  "27",
               MonitoredVehicleJourney_DirectionRef[] = 
                  "Inbound",
               FramedVehicleJourneyRef_DataFrameRef[] = 
                  "2013-01-21",
               FramedVehicleJourneyRef_DatedVehicleJourneyRef[] = 
                  "4061",
               MonitoredVehicleJourney_PublishedLineName[] = 
                  "77A",
               MonitoredVehicleJourney_OperatorRef[] = 
                  "bac",
               MonitoredVehicleJourney_DestinationRef[] = 
                  "00354",
               MonitoredVehicleJourney_DestinationName[] = 
                  "Ringsend Rd via Tymon Park",
               MonitoredVehicleJourney_Monitored[] = 
                  "true",
               MonitoredVehicleJourney_InCongestion[] = 
                  "false",
               MonitoredVehicleJourney_BlockRef[] = 
                  "027008:34",
               MonitoredVehicleJourney_VehicleRef[] = 
                  "33204",
               MonitoredCall_VisitNumber[] = 
                  "39",
               MonitoredCall_VehicleAtStop[] = 
                  "false",
               MonitoredCall_AimedArrivalTime[] = 
                  "2013-01-21T21:44:00+00:00",
               MonitoredCall_ExpectedArrivalTime[] = 
                  "2013-01-21T21:44:00+00:00",
               MonitoredCall_AimedDepartureTime[] = 
                  "2013-01-21T21:44:00+00:00",
               MonitoredCall_ExpectedDepartureTime[] = 
                  "2013-01-21T21:44:00+00:00",
               Timestamp[] = 
                  "2013-01-21T20:57:40.627+00:00",
            },
      },
 }])
4

1 に答える 1

0

記録のために、私は次のようなコードを使用してこれを修正しました:

tmpData = requestoutput[1][0][0][0]

これは、データが実際に多次元配列に格納されていることを示しています。これをPythonに入れると、配列が作成されます(ただし、[data = list]を出力すると、文字列とリストを連結できないと表示されます)。

しかしとにかく、配列を使用してデータの個々の要素にアクセスできるようになりました。

乾杯。

于 2013-01-25T22:49:13.660 に答える