以允许将JSON响应快速读入单个datafram的方式存储JSON响应

2024-05-22 09:38:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我得到了800个JSON响应,我想以某种方式存储它们。所有的答案都不一致——有些答案比其他答案有更多的答案

较短响应示例:

{"resource_state":3,"athlete":{"id":3255732,"resource_state":1},"name":"Morning Ride","distance":38070.1,"moving_time":5670,"elapsed_time":5768,"total_elevation_gain":57.0,"type":"Ride","workout_type":null,"id":1955859077,"external_id":"garmin_push_3150670802","upload_id":2092122328,"start_date":"2018-11-10T06:19:36Z","start_date_local":"2018-11-10T07:19:36Z","timezone":"(GMT+01:00) Europe/Warsaw","utc_offset":3600.0,"start_latlng":[51.11,17.1],"end_latlng":[51.11,17.1],"location_city":null,"location_state":null,"location_country":"Poland","start_latitude":51.11,"start_longitude":17.1,"achievement_count":1,"kudos_count":1,"comment_count":0,"athlete_count":1,"photo_count":0,"map":{"id":"a1955859077","polyline":"mw}vHm`kgBk@DOEGUEyFc@m@uASoDu@EmAT}CSYUMBo@N}D\\oEFoC?a@FkARi@l@oAzAkCpGgKpAoBjA}BvQeZpDwFdA{AfCyC~AgBpGyGtAcBp@{@vAsBjByCjBMp@dAP|AHlAd@jDj@lB^@pEcFTCRPPn@HRF?@MAU]qA@cB@QP{@POjD}An@e@jB}BdIkJ\\\\DLp@Md@HGtBEpDInCA`ABh@GrOVd`@HrCF^RPxBg@nAQbDw@dIwBzRoDrLuDhBq@r@]n@Gh@Mb@k@tAyBTi@`@]x@uAz@uB|@oCbAkCvAgDx@}C~@oEBoA[aMr@}ChDgFzAkBxBeCfAg@nB]fDcBTGPA@@LUv@i@ZKxCcBf@@\\HpBx@`Cz@tDlAb@qB|@qCp@kFJc@Vm@rA{Bx@mA~@s@dCg@h@g@PY^qAp@}Cx@uCHw@BwDE{DKgBZu@p@w@~AsAxDsCzAmBbAkChA_CxAcBhE{DhBcAf@KlBs@nBe@bFIhBIzEW\\@pBb@fBh@tEfAjBVjBBzEqAlCy@lBq@vE}BV[z@sC~@iHjAmHLkBNkAjAyMH_B?`@F`Af@K~NmI^O`FiAnAStBTp@y@FMx@c@rBa@fBKr@@OfAGFKd@SX]~@EHY?{@aAe@_@oBcA_AYeAOi@Cy@?i@DyAXk@ReD`BuJdFc@y@UkBCo@KKWG}@m@q@]kEiAyA]]Ek@@oCh@sCv@w@XwEzBs@JK?aAGaD}@_B{AyAkB{A_BgB}Au@UoBC_BQg@WcDyBkGeCkCgByAs@kBg@sDy@ODKh@Kt@]nDKl@YBqBWkBOsA?oBHcH`@gABmC@sBQ}Be@kBg@gBy@oHyEaOuJyEaDcBeAoEgDkCkBMDCHK|@Er@\\j@^Dn@XzEnCRAREVSPq@LWPSpA}BxCqEn@eDJo@In@NLZS`@_Bh@yAx@aBZe@Za@pAsArDgDx@q@|A}AnAeAfBmA\\OzASh@YnB]bCo@pF_ChAq@`@Gh@g@PUj@_@lB_AdAI^gAgAyAFGTf@`@\\RL`@F\\K`MsFbT_KzEuB`CyA|C}B\\w@Z}@xAmBvAsBlA}BdEcJh@cAbA_DxD}Oz@cD`@FbAx@ZNZC\\gB@g@t@kDzCuLlAgF\\oCfAiGbAuGZqBf@qE@o@zCan@{@{AaDc@OJIv@@vLI~BMfBi@bEM~AuAlZStD_@tDa@rDg@zCo@bDsGxW@`@`BpAPTHf@C\\i@pBm@bAi@`B{BbJy@xCaBjFqA~C}@jBqA~BsDfF}AdBaBzA_BlAeBdAeAh@{EnBaItDwLpFqB`AiBnAy@bAIDm@Ns@iA]aC[i@{AuACB@HbAfARZBLaAd@K@sAb@o@XcAp@i@l@s@TcCrAoBt@iBt@wBf@}@Nq@P{@X_APq@\\iAz@mKrJ}A~A_AtAgAbCy@nCEHk@VMz@U|@cDdFqBtDSlAEh@ElD?nDBlDTfBRv@LvABj@@rFKpBa@jAq@hAwAjB}A|A_BrAaBjAoBz@aBl@sAb@mBXM?gBeAcEsEqAaCoAaCuAwBmAaC}@qC}AcJSkHWW}AjAiEjDeBvAgBbB_BlAa@T_@Je@@cFyAaDmAw@Q{@LgCvBaBhAm@f@}ApB}CxEMlAB|DFfB^`DpAdGf@zAx@rCdAhCTz@RfD?b@s@b@s@GkBo@qAO}EDqBNoBd@kDzAi@l@c@Vm@d@{A|A_@zAm@~Ie@dDk@jCu@zB[n@mAnDwGhMoAzBcDpFwAjB_BvAqErCoB`AqBl@uBd@gCv@aInBkBXwBl@MFCDFp@AVCD]Fc@LYeAYOy@JkAToBVkAHOLEp@EjC@bAGtDBbAZArJcB`@KBEAg@O{@?[LOlASTbCHLVKjMsBbI}A|LQ`FMlBLbB|@l@h@xE`HtJ~Ms@tBmGnHoAzBqFtGBhANf@^bAS|A{AlCoD`FePlVmE`HqIzNS^yBvFuFjJSh@m@hA]`Ay@|AIRWzAuAbCg@l@a@v@s@z@cC|AsA|BML_BpAyArAC?AG|BeDx@cAtAqB|EqIVSXb@jB~Dv@|AFNPvAE`Bi@~IOvCHDJAB|As@tJEdADtBl@HrDGtDDTG@cA","resource_state":3,"summary_polyline":"mw}vHm`kgB{@?q@}HeGiAz@y^bi@o|@j[e`@|Cv@lCfMpEcFlApAGgHlFsCpLiNzBf@]v`@|@jf@z}@uTjFcInIwUzA_[~JyMdSaJnNnEvDaQnKgJtC}LLqOjI_HbI}MxPeJfQi@fSpDvM}DvE}BrAoD~Fii@n@vA~O}IjX_FuAnEeOcEaTtJiAaFkMaEaV|F_PcMcf@aQqAbIi`@CqIgCml@u`@aAjBpJrEtPo\\hOsNxb@{P_@iDjCnA`r@a]hP}ZxHaZ|ClAdO{v@dEcv@wF{@GvPoEdr@mKlg@zBnEyK`_@uKrReKtI{h@|WwF{HxA~Bgb@nPwMnLkS`_@Tlg@iG~IqHzEqHjBkHyGcKoSiCgTwSbP_PiDwGhFiGxKj@fMbHf[uRMsNjIsB`RkEfNcUz^we@xOO|AgMPMzNpLqBMeCzAc@^pCfX}ElWQ`VhZcSvX^rGqi@zz@uSjc@cPhP|O}S|DdKyAlf@nLcA"},"trainer":false,"commute":false,"manual":false,"private":false,"visibility":"everyone","flagged":false,"gear_id":null,"from_accepted_tag":false,"average_speed":6.714,"max_speed":10.6,"average_temp":4.0,"average_watts":87.5,"kilojoules":496.4,"device_watts":false,"has_heartrate":true,"average_heartrate":141.6,"max_heartrate":177.0,"heartrate_opt_out":false,"display_hide_heartrate_option":false,"elev_high":124.8,"elev_low":109.0,"pr_count":0,"total_photo_count":0,"has_kudoed":false,"description":null,"calories":930.0,"segment_efforts":[{"id":49282673721,"resource_state":2,"name":"Kanalowa - Bartoszowice","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":223,"moving_time":223,"start_date":"2018-11-10T06:21:33Z","start_date_local":"2018-11-10T07:21:33Z","distance":1644.8,"start_index":33,"end_index":65,"device_watts":false,"average_watts":96.6,"average_heartrate":126.8,"max_heartrate":134.0,"segment":{"id":5397668,"resource_state":2,"name":"Kanalowa - Bartoszowice","activity_type":"Ride","distance":1626.1,"average_grade":0.0,"maximum_grade":2.1,"elevation_high":118.4,"elevation_low":115.5,"start_latlng":[51.113356,17.107737],"end_latlng":[51.102321,17.122732],"start_latitude":51.113356,"start_longitude":17.107737,"end_latitude":51.102321,"end_longitude":17.122732,"climb_category":0,"city":"Wroclaw","state":"Lower Silesian Voivodeship","country":"Poland","private":false,"hazardous":false,"starred":false},"kom_rank":null,"pr_rank":null,"achievements":[],"hidden":false},{"id":49282673740,"resource_state":2,"name":"Wyspa Opatowicka","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":70,"moving_time":70,"start_date":"2018-11-10T06:26:46Z","start_date_local":"2018-11-10T07:26:46Z","distance":490.9,"start_index":90,"end_index":108,"device_watts":false,"average_watts":105.5,"average_heartrate":136.7,"max_heartrate":145.0,"segment":{"id":1979443,"resource_state":2,"name":"Wyspa Opatowicka","activity_type":"Ride","distance":571.887,"average_grade":-1.1,"maximum_grade":5.3,"elevation_high":126.9,"elevation_low":115.0,"start_latlng":[51.09945472590896,17.121809845604197],"end_latlng":[51.09585090073212,17.12602148132605],"start_latitude":51.09945472590896,"start_longitude":17.121809845604197,"end_latitude":51.09585090073212,"end_longitude":17.12602148132605,"climb_category":0,"city":"Wrocław","state":"dolnośląskie","country":"Poland","private":false,"hazardous":false,"starred":false},"kom_rank":null,"pr_rank":null,"achievements":[],"hidden":false},{"id":49282673759,"resource_state":2,"name":"Z Opatowickiej Groblą Obwodową","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":407,"moving_time":392,"start_date":"2018-11-10T06:30:45Z","start_date_local":"2018-11-10T07:30:45Z","distance":2585.5,"start_index":141,"end_index":207,"device_watts":false,"average_watts":83.7,"average_heartrate":138.6,"max_heartrate":149.0,"segment":{"id":18225573,"resource_state":2,"name":"Z Opatowickiej Groblą Obwodową","activity_type":"Ride","distance":2547.5,"average_grade":0.0,"maximum_grade":3.5,"elevation_high":86.4,"elevation_low":83.4,"start_latlng":[51.094583,17.1143],"end_latlng":[51.076382,17.131546],"start_latitude":51.094583,"start_longitude":17.1143,"end_latitude":51.076382,"end_longitude":17.131546,"climb_category":0,"city":"Wrocław","state":"Województwo dolnośląskie","country":"Poland","private":false,"hazardous":false,"starred":false},"kom_rank":null,"pr_rank":null,"achievements":[],"hidden":false},{"id":49282673782,"resource_state":2,"name":"Mokry Dwór - jezioro  WOW - po wałach MTB","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":499,"moving_time":499,"start_date":"2018-11-10T06:38:30Z","start_date_local":"2018-11-10T07:38:30Z","distance":2968.8,"start_index":217,"end_index":281,"device_watts":false,"average_watts":62.6,"average_heartrate":143.6,"max_heartrate":155.0,"segment":{"id":15813509,"resource_state":2,"name":"Mokry Dwór - jezioro  WOW - po wałach MTB","activity_type":"Ride","distance":2977.8,"average_grade":0.0,"maximum_grade":8.2,"elevation_high":123.9,"elevation_low":115.5,"start_latlng":[51.073732,17.131044],"end_latlng":[51.053638,17.149369],"start_latitude":51.073732,"start_longitude":17.131044,"end_latitude":51.053638,"end_longitude":17.149369,"climb_category":0,"city":"Mokry Dwór","state":"Województwo dolnośląskie","country":"Poland","private":false,"hazardous":false,"starred":false},"kom_rank":null,"pr_rank":3,"achievements":[{"type_id":3,"type":"pr","rank":3}],"hidden":false},{"id":49282673799,"resource_state":2,"name":"obwodnica do mostu","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":84,"moving_time":84,"start_date":"2018-11-10T06:48:17Z","start_date_local":"2018-11-10T07:48:17Z","distance":566.7,"start_index":296,"end_index":308,"device_watts":false,"average_watts":78.7,"average_heartrate":124.8,"max_heartrate":129.0,"segment":{"id":12021547,"resource_state":2,"name":"obwodnica do mostu","activity_type":"Ride","distance":564.7,"average_grade":-0.2,"maximum_grade":1.7,"elevation_high":118.9,"elevation_low":116.6,"start_latlng":[51.052555,17.153821],"end_latlng":[51.047722,17.155906],"start_latitude":51.052555,"start_longitude":17.153821,"end_latitude":51.047722,"end_longitude":17.155906,"climb_category":0,"city":"Siechnice","state":"Województwo dolnośląskie","country":"Poland","private":false,"hazardous":false,"starred":false},"kom_rank":null,"pr_rank":null,"achievements":[],"hidden":false},{"id":49282673819,"resource_state":2,"name":"Blizanowice-Odra","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":166,"moving_time":166,"start_date":"2018-11-10T06:56:43Z","start_date_local":"2018-11-10T07:56:43Z","distance":1274.0,"start_index":406,"end_index":434,"device_watts":false,"average_watts":148.5,"average_heartrate":135.4,"max_heartrate":143.0,"segment":{"id":14481418,"resource_state":2,"name":"Blizanowice-Odra","activity_type":"Ride","distance":1321.0,"average_grade":0.1,"maximum_grade":4.4,"elevation_high":118.9,"elevation_low":116.0,"start_latlng":[51.068017,17.158979],"end_latlng":[51.079296,17.162921],"start_latitude":51.068017,"start_longitude":17.158979,"end_latitude":51.079296,"end_longitude":17.162921,"climb_category":0,"city":"Kamieniec Wrocławski","state":"Województwo dolnośląskie","country":"Poland","private":false,"hazardous":false,"starred":false},"kom_rank":null,"pr_rank":null,"achievements":[],"hidden":false},{"id":49282673831,"resource_state":2,"name":"Gajków wał","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":166,"moving_time":166,"start_date":"2018-11-10T07:10:49Z","start_date_local":"2018-11-10T08:10:49Z","distance":1154.2,"start_index":572,"end_index":599,"device_watts":false,"average_watts":86.7,"average_heartrate":155.6,"max_heartrate":166.0,"segment":{"id":13681440,"resource_state":2,"name":"Gajków wał","activity_type":"Ride","distance":1180.4,"average_grade":0.1,"maximum_grade":13.5,"elevation_high":123.0,"elevation_low":120.0,"start_latlng":[51.055259,17.188889],"end_latlng":[51.052198,17.204504],"start_latitude":51.055259,"start_longitude":17.188889,"end_latitude":51.052198,"end_longitude":17.204504,"climb_category":0,"city":"Gajków","state":"Województwo dolnośląskie","country":"Poland","private":false,"hazardous":false,"starred":false},"kom_rank":null,"pr_rank":null,"achievements":[],"hidden":false},{"id":49282673847,"resource_state":2,"name":"Kamieniec W. - Łany groblą","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":321,"moving_time":321,"start_date":"2018-11-10T07:23:04Z","start_date_local":"2018-11-10T08:23:04Z","distance":2300.6,"start_index":705,"end_index":766,"device_watts":false,"average_watts":97.7,"average_heartrate":146.2,"max_heartrate":161.0,"segment":{"id":8980678,"resource_state":2,"name":"Kamieniec W. - Łany groblą","activity_type":"Ride","distance":2278.1,"average_grade":0.1,"maximum_grade":4.2,"elevation_high":121.0,"elevation_low":115.0,"start_latlng":[51.070353,17.173914],"end_latlng":[51.083623,17.15429],"start_latitude":51.070353,"start_longitude":17.173914,"end_latitude":51.083623,"end_longitude":17.15429,"climb_category":0,"city":"Kamieniec Wrocławski","state":"Województwo dolnośląskie","country":"Poland","private":false,"hazardous":false,"starred":false},"kom_rank":null,"pr_rank":null,"achievements":[],"hidden":false},{"id":49282673863,"resource_state":2,"name":"Groblą z Wojnowa na Strachocin","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":264,"moving_time":264,"start_date":"2018-11-10T07:32:17Z","start_date_local":"2018-11-10T08:32:17Z","distance":1968.5,"start_index":805,"end_index":850,"device_watts":false,"average_watts":100.0,"average_heartrate":142.8,"max_heartrate":149.0,"segment":{"id":17153048,"resource_state":2,"name":"Groblą z Wojnowa na Strachocin","activity_type":"Ride","distance":1982.2,"average_grade":-0.3,"maximum_grade":2.1,"elevation_high":120.4,"elevation_low":112.8,"start_latlng":[51.09506,17.160077],"end_latlng":[51.103197,17.143227],"start_latitude":51.09506,"start_longitude":17.160077,"end_latitude":51.103197,"end_longitude":17.143227,"climb_category":0,"city":"Wrocław","state":"Województwo dolnośląskie","country":"Poland","private":false,"hazardous":false,"starred":false},"kom_rank":null,"pr_rank":null,"achievements":[],"hidden":false},{"id":49282673886,"resource_state":2,"name":"Swojczyce - Bartoszowice","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":274,"moving_time":274,"start_date":"2018-11-10T07:42:15Z","start_date_local":"2018-11-10T08:42:15Z","distance":1794.5,"start_index":930,"end_index":967,"device_watts":false,"average_watts":81.9,"average_heartrate":137.0,"max_heartrate":148.0,"segment":{"id":17152947,"resource_state":2,"name":"Swojczyce - Bartoszowice","activity_type":"Ride","distance":1764.2,"average_grade":0.0,"maximum_grade":5.2,"elevation_high":120.2,"elevation_low":114.9,"start_latlng":[51.112431,17.13288],"end_latlng":[51.103866,17.12606],"start_latitude":51.112431,"start_longitude":17.13288,"end_latitude":51.103866,"end_longitude":17.12606,"climb_category":0,"city":"Wrocław","state":"Województwo dolnośląskie","country":"Poland","private":false,"hazardous":false,"starred":false},"kom_rank":null,"pr_rank":null,"achievements":[],"hidden":false},{"id":49282673904,"resource_state":2,"name":"Odcinek między kanałami","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":165,"moving_time":165,"start_date":"2018-11-10T07:47:25Z","start_date_local":"2018-11-10T08:47:25Z","distance":1384.5,"start_index":975,"end_index":1006,"device_watts":false,"average_watts":114.2,"average_heartrate":145.1,"max_heartrate":165.0,"segment":{"id":11065825,"resource_state":2,"name":"Odcinek między kanałami","activity_type":"Ride","distance":1386.8,"average_grade":0.2,"maximum_grade":2.3,"elevation_high":118.8,"elevation_low":114.6,"start_latlng":[51.104562,17.123725],"end_latlng":[51.113834,17.110484],"start_latitude":51.104562,"start_longitude":17.123725,"end_latitude":51.113834,"end_longitude":17.110484,"climb_category":0,"city":"Wrocław","state":"Województwo dolnośląskie","country":"Poland","private":false,"hazardous":false,"starred":false},"kom_rank":null,"pr_rank":null,"achievements":[],"hidden":false},{"id":49282673927,"resource_state":2,"name":"Kostka Mickiewicza do centrum","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":86,"moving_time":47,"start_date":"2018-11-10T07:52:59Z","start_date_local":"2018-11-10T08:52:59Z","distance":284.1,"start_index":1047,"end_index":1058,"device_watts":false,"average_watts":44.3,"average_heartrate":111.3,"max_heartrate":124.0,"segment":{"id":15029115,"resource_state":2,"name":"Kostka Mickiewicza do centrum","activity_type":"Ride","distance":301.2,"average_grade":-0.0,"maximum_grade":3.1,"elevation_high":118.1,"elevation_low":117.0,"start_latlng":[51.113417,17.106829],"end_latlng":[51.11394,17.102641],"start_latitude":51.113417,"start_longitude":17.106829,"end_latitude":51.11394,"end_longitude":17.102641,"climb_category":0,"city":"Wrocław","state":"Województwo dolnośląskie","country":"Poland","private":false,"hazardous":false,"starred":false},"kom_rank":null,"pr_rank":null,"achievements":[],"hidden":false}],"splits_metric":[{"distance":1005.1,"elapsed_time":161,"elevation_difference":4.2,"moving_time":161,"split":1,"average_speed":6.24,"average_heartrate":117.71428571428571,"pace_zone":0},{"distance":1044.4,"elapsed_time":141,"elevation_difference":0.2,"moving_time":141,"split":2,"average_speed":7.41,"average_heartrate":126.65957446808511,"pace_zone":0},{"distance":952.3,"elapsed_time":148,"elevation_difference":-2.0,"moving_time":148,"split":3,"average_speed":6.43,"average_heartrate":128.9527027027027,"pace_zone":0},{"distance":1009.2,"elapsed_time":176,"elevation_difference":2.4,"moving_time":150,"split":4,"average_speed":6.73,"average_heartrate":134.53333333333333,"pace_zone":0},{"distance":1015.5,"elapsed_time":150,"elevation_difference":0.0,"moving_time":150,"split":5,"average_speed":6.77,"average_heartrate":138.53333333333333,"pace_zone":0},{"distance":995.2,"elapsed_time":150,"elevation_difference":0.4,"moving_time":150,"split":6,"average_speed":6.63,"average_heartrate":138.22,"pace_zone":0},{"distance":1007.7,"elapsed_time":172,"elevation_difference":-1.4,"moving_time":159,"split":7,"average_speed":6.34,"average_heartrate":137.62420382165604,"pace_zone":0},{"distance":983.8,"elapsed_time":154,"elevation_difference":-0.8,"moving_time":154,"split":8,"average_speed":6.39,"average_heartrate":138.92857142857142,"pace_zone":0},{"distance":1015.6,"elapsed_time":179,"elevation_difference":2.2,"moving_time":179,"split":9,"average_speed":5.67,"average_heartrate":142.24022346368716,"pace_zone":0},{"distance":983.9,"elapsed_time":170,"elevation_difference":0.0,"moving_time":170,"split":10,"average_speed":5.79,"average_heartrate":145.7941176470588,"pace_zone":0},{"distance":1001.0,"elapsed_time":189,"elevation_difference":0.0,"moving_time":171,"split":11,"average_speed":5.85,"average_heartrate":134.46198830409358,"pace_zone":0},{"distance":989.2,"elapsed_time":140,"elevation_difference":3.6,"moving_time":140,"split":12,"average_speed":7.07,"average_heartrate":135.55,"pace_zone":0},{"distance":1031.2,"elapsed_time":143,"elevation_difference":-3.2,"moving_time":143,"split":13,"average_speed":7.21,"average_heartrate":138.1118881118881,"pace_zone":0},{"distance":983.8,"elapsed_time":128,"elevation_difference":-1.0,"moving_time":128,"split":14,"average_speed":7.69,"average_heartrate":143.078125,"pace_zone":0},{"distance":988.2,"elapsed_time":135,"elevation_difference":5.8,"moving_time":135,"split":15,"average_speed":7.32,"average_heartrate":133.51111111111112,"pace_zone":0},{"distance":1001.4,"elapsed_time":131,"elevation_difference":-8.2,"moving_time":131,"split":16,"average_speed":7.64,"average_heartrate":125.41984732824427,"pace_zone":0},{"distance":1031.4,"elapsed_time":178,"elevation_difference":1.0,"moving_time":178,"split":17,"average_speed":5.79,"average_heartrate":142.3426966292135,"pace_zone":0},{"distance":1013.2,"elapsed_time":166,"elevation_difference":1.6,"moving_time":166,"split":18,"average_speed":6.1,"average_heartrate":146.0843373493976,"pace_zone":0},{"distance":1005.2,"elapsed_time":143,"elevation_difference":0.4,"moving_time":143,"split":19,"average_speed":7.03,"average_heartrate":155.3986013986014,"pace_zone":0},{"distance":947.3,"elapsed_time":142,"elevation_difference":0.8,"moving_time":142,"split":20,"average_speed":6.67,"average_heartrate":158.85211267605635,"pace_zone":0},{"distance":1017.9,"elapsed_time":149,"elevation_difference":0.8,"moving_time":149,"split":21,"average_speed":6.83,"average_heartrate":155.08053691275168,"pace_zone":0},{"distance":1032.1,"elapsed_time":149,"elevation_difference":-1.8,"moving_time":149,"split":22,"average_speed":6.93,"average_heartrate":153.1744966442953,"pace_zone":0},{"distance":980.9,"elapsed_time":158,"elevation_difference":0.4,"moving_time":158,"split":23,"average_speed":6.21,"average_heartrate":157.67088607594937,"pace_zone":0},{"distance":990.6,"elapsed_time":137,"elevation_difference":-0.4,"moving_time":137,"split":24,"average_speed":7.23,"average_heartrate":163.54744525547446,"pace_zone":0},{"distance":1016.5,"elapsed_time":159,"elevation_difference":-2.6,"moving_time":159,"split":25,"average_speed":6.39,"average_heartrate":149.93710691823898,"pace_zone":0},{"distance":1013.7,"elapsed_time":145,"elevation_difference":1.6,"moving_time":145,"split":26,"average_speed":6.99,"average_heartrate":152.08965517241379,"pace_zone":0},{"distance":957.7,"elapsed_time":128,"elevation_difference":0.0,"moving_time":128,"split":27,"average_speed":7.48,"average_heartrate":143.3828125,"pace_zone":0},{"distance":1002.6,"elapsed_time":147,"elevation_difference":-0.6,"moving_time":147,"split":28,"average_speed":6.82,"average_heartrate":134.79591836734693,"pace_zone":0},{"distance":1014.4,"elapsed_time":141,"elevation_difference":0.6,"moving_time":141,"split":29,"average_speed":7.19,"average_heartrate":140.97163120567376,"pace_zone":0},{"distance":990.8,"elapsed_time":133,"elevation_difference":0.6,"moving_time":133,"split":30,"average_speed":7.45,"average_heartrate":142.06766917293234,"pace_zone":0},{"distance":1021.2,"elapsed_time":128,"elevation_difference":-1.2,"moving_time":128,"split":31,"average_speed":7.98,"average_heartrate":145.28125,"pace_zone":0},{"distance":960.7,"elapsed_time":127,"elevation_difference":-2.8,"moving_time":127,"split":32,"average_speed":7.56,"average_heartrate":158.22834645669292,"pace_zone":0},{"distance":1032.2,"elapsed_time":185,"elevation_difference":2.2,"moving_time":185,"split":33,"average_speed":5.58,"average_heartrate":133.51891891891893,"pace_zone":0},{"distance":1022.7,"elapsed_time":164,"elevation_difference":1.4,"moving_time":164,"split":34,"average_speed":6.24,"average_heartrate":135.39634146341464,"pace_zone":0},{"distance":944.6,"elapsed_time":134,"elevation_difference":-0.4,"moving_time":134,"split":35,"average_speed":7.05,"average_heartrate":139.12686567164178,"pace_zone":0},{"distance":1020.7,"elapsed_time":124,"elevation_difference":-3.0,"moving_time":124,"split":36,"average_speed":8.23,"average_heartrate":142.71774193548387,"pace_zone":0},{"distance":1001.1,"elapsed_time":136,"elevation_difference":2.0,"moving_time":136,"split":37,"average_speed":7.36,"average_heartrate":164.06617647058823,"pace_zone":0},{"distance":1010.3,"elapsed_time":208,"elevation_difference":-2.4,"moving_time":169,"split":38,"average_speed":5.98,"average_heartrate":122.25443786982248,"pace_zone":0},{"distance":36.2,"elapsed_time":20,"elevation_difference":-0.2,"moving_time":15,"split":39,"average_speed":2.41,"average_heartrate":105.33333333333333,"pace_zone":0}],"splits_standard":[{"distance":1643.7,"elapsed_time":246,"elevation_difference":4.0,"moving_time":246,"split":1,"average_speed":6.68,"average_heartrate":120.72764227642277,"pace_zone":0},{"distance":1580.6,"elapsed_time":234,"elevation_difference":-1.0,"moving_time":234,"split":2,"average_speed":6.75,"average_heartrate":129.93162393162393,"pace_zone":0},{"distance":1651.3,"elapsed_time":274,"elevation_difference":1.6,"moving_time":248,"split":3,"average_speed":6.66,"average_heartrate":135.90322580645162,"pace_zone":0},{"distance":1577.9,"elapsed_time":233,"elevation_difference":0.8,"moving_time":233,"split":4,"average_speed":6.77,"average_heartrate":139.14163090128756,"pace_zone":0},{"distance":1619.9,"elapsed_time":276,"elevation_difference":-0.6,"moving_time":263,"split":5,"average_speed":6.16,"average_heartrate":137.77394636015325,"pace_zone":0},{"distance":1582.7,"elapsed_time":274,"elevation_difference":0.6,"moving_time":274,"split":6,"average_speed":5.78,"average_heartrate":142.6897810218978,"pace_zone":0},{"distance":1611.9,"elapsed_time":288,"elevation_difference":-0.8,"moving_time":270,"split":7,"average_speed":5.97,"average_heartrate":136.71481481481482,"pace_zone":0},{"distance":1629.1,"elapsed_time":230,"elevation_difference":0.8,"moving_time":230,"split":8,"average_speed":7.08,"average_heartrate":137.91739130434783,"pace_zone":0},{"distance":1589.2,"elapsed_time":215,"elevation_difference":1.6,"moving_time":215,"split":9,"average_speed":7.39,"average_heartrate":140.73953488372092,"pace_zone":0},{"distance":1616.9,"elapsed_time":211,"elevation_difference":-4.8,"moving_time":211,"split":10,"average_speed":7.66,"average_heartrate":127.69668246445498,"pace_zone":0},{"distance":1600.3,"elapsed_time":266,"elevation_difference":1.0,"moving_time":266,"split":11,"average_speed":6.02,"average_heartrate":145.5639097744361,"pace_zone":0},{"distance":1621.8,"elapsed_time":246,"elevation_difference":2.2,"moving_time":246,"split":12,"average_speed":6.59,"average_heartrate":152.60569105691056,"pace_zone":0},{"distance":1629.2,"elapsed_time":242,"elevation_difference":1.4,"moving_time":242,"split":13,"average_speed":6.73,"average_heartrate":157.12809917355372,"pace_zone":0},{"distance":1588.0,"elapsed_time":234,"elevation_difference":-0.4,"moving_time":234,"split":14,"average_speed":6.79,"average_heartrate":159.0,"pace_zone":0},{"distance":1612.4,"elapsed_time":236,"elevation_difference":-1.6,"moving_time":236,"split":15,"average_speed":6.83,"average_heartrate":156.91101694915255,"pace_zone":0},{"distance":1655.5,"elapsed_time":244,"elevation_difference":-3.8,"moving_time":244,"split":16,"average_speed":6.78,"average_heartrate":148.54098360655738,"pace_zone":0},{"distance":1572.6,"elapsed_time":225,"elevation_difference":3.0,"moving_time":225,"split":17,"average_speed":6.99,"average_heartrate":144.1822222222222,"pace_zone":0},{"distance":1611.6,"elapsed_time":230,"elevation_difference":-0.2,"moving_time":230,"split":18,"average_speed":7.01,"average_heartrate":138.47391304347826,"pace_zone":0},{"distance":1601.9,"elapsed_time":213,"elevation_difference":-0.4,"moving_time":213,"split":19,"average_speed":7.52,"average_heartrate":142.3849765258216,"pace_zone":0},{"distance":1620.7,"elapsed_time":221,"elevation_difference":-0.6,"moving_time":221,"split":20,"average_speed":7.33,"average_heartrate":152.14932126696831,"pace_zone":0},{"distance":1591.7,"elapsed_time":270,"elevation_difference":0.8,"moving_time":270,"split":21,"average_speed":5.9,"average_heartrate":133.6925925925926,"pace_zone":0},{"distance":1612.9,"elapsed_time":225,"elevation_difference":0.0,"moving_time":225,"split":22,"average_speed":7.17,"average_heartrate":139.09777777777776,"pace_zone":0},{"distance":1603.2,"elapsed_time":207,"elevation_difference":-0.8,"moving_time":207,"split":23,"average_speed":7.74,"average_heartrate":156.9951690821256,"pace_zone":0},{"distance":1046.5,"elapsed_time":228,"elevation_difference":-2.6,"moving_time":184,"split":24,"average_speed":5.69,"average_heartrate":120.875,"pace_zone":0}],"laps":[{"id":6301868003,"resource_state":2,"name":"Lap 1","activity":{"id":1955859077,"resource_state":1},"athlete":{"id":3255732,"resource_state":1},"elapsed_time":5768,"moving_time":5667,"start_date":"2018-11-10T06:19:36Z","start_date_local":"2018-11-10T07:19:36Z","distance":38071.5,"start_index":0,"end_index":1074,"total_elevation_gain":57.0,"average_speed":6.6,"max_speed":10.6,"device_watts":false,"average_watts":87.5,"average_heartrate":141.6,"max_heartrate":177.0,"lap_index":1,"split":1}],"photos":{"primary":null,"count":0},"device_name":"Garmin Edge 520","embed_token":"bf197810e79f1958770621e38903f9efddcad2e0","available_zones":[]}

我试过:

  1. 将每个JSON作为文本保存到Excel文件中的单独一行。不起作用,因为我的json超过了Excel的单元格字符限制
  2. 将每个JSON放入一个dataframe,并使用json_normalize转换为Excel。在一些我无法处理的列上给了我一些解码器错误
  3. 将每个JSON另存为.txt文件中的新行。这是可行的,但是文件非常大-30Mb-并且将所有内容转换成数据帧需要很长时间
  4. 保存到sqlite3作为文本字段,从文本文件-这给了我各种错误,也觉得编写SQL语句很麻烦

我考虑过使用MongoDB或Django ORM的JSON字段,但对于我想做的一个简单任务来说,这是一个很大的堆栈—将每个JSON读入一个dataframe,然后将dataframes连接到一个dataframe

我需要一个能够快速读取数据,因为它将在一个在线博凯可视化使用

有没有其他轻量级的选择我可以尝试


Tags: falsezonetimestartdistancesplitstatespeed