Python Json dump 排序

2024-06-09 07:46:34 发布

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

我正在创建一个JSON(从另一个JSON获取数据)。当我转储到JSON时,它会转储未排序的数据。当我试着分类的时候,它并没有按我想要的方式分类

这是我从中获取数据的json

{"Logs":[{"Type":"VersionInfo","WorldTime":"11:22:04.9668710","SimulationTime":0,"FrameID":1,"XXXX":"XXXX XXX. XXXXX. ","Version":"XXXX","UnityVersion":"XXXXX"},{"Type":"GPS","WorldTime":"11:22:31.4395530","SimulationTime":0.0333333350718021,"FrameID":2,"Latitude":-0.000142197197419591,"Longitude":-0.00304042384959757,"Heading":89.3402404785156,"Speed":0,"Name":""},{"Type":"Gyro","WorldTime":"11:22:31.4395530","SimulationTime":0.0333333350718021,"FrameID":2,"Gyroscope":{"pitch_rate":0.00257105240598321,"yaw_rate":0.00034347633481957,"roll_rate":0.00864287838339806}},{"Type":"Accelerometer","WorldTime":"11:22:31.4395530","SimulationTime":0.0333333350718021,"FrameID":2,"Accelerometer":{"x":0.000268936157226563,"y":-4.93995867145713E-06,"z":500.000091552734}},{"Type":"CarTelemetries","WorldTime":"11:22:31.4395530","SimulationTime":0.0333333350718021,"FrameID":2,"Speed":10.0000019073486,"SteeringAngle":0,"Wheels_Spin":{"WheelFL":0,"WheelFR":0,"WheelRL":0,"WheelRR":0}},{"Type":"GPS","WorldTime":"11:22:36.6162530","SimulationTime":0.0666666701436043,"FrameID":3,"Latitude":-0.000142171658808365,"Longitude":-0.00303750648163259,"Heading":89.3430862426758,"Speed":0,"Name":""},{"Type":"Gyro","WorldTime":"11:22:36.6162530","SimulationTime":0.0666666701436043,"FrameID":3,"Gyroscope":{"pitch_rate":0.0431044436991215,"yaw_rate":0.00210362509824336,"roll_rate":-0.128382220864296}},{"Type":"Accelerometer","WorldTime":"11:22:36.6162530","SimulationTime":0.0666666701436043,"FrameID":3,"Accelerometer":{"x":-0.0327728018164635,"y":0.764712631702423,"z":-9.8843936920166}},{"Type":"CarTelemetries","WorldTime":"11:22:36.6162530","SimulationTime":0.0666666701436043,"FrameID":3,"Speed":9.80248165130615,"SteeringAngle":0.000244324823142961,"Wheels_Spin":{"WheelFL":250.613662719727,"WheelFR":250.541610717773,"WheelRL":250.585708618164,"WheelRR":250.533676147461}},{"Type":"GPS","WorldTime":"11:22:37.5705560","SimulationTime":0.100000008940697,"FrameID":4,"Latitude":-0.000142144665005617,"Longitude":-0.00303461914882064,"Heading":89.3478317260742,"Speed":9.74316310882568,"Name":""},{"Type":"Gyro","WorldTime":"11:22:37.5705560","SimulationTime":0.100000008940697,"FrameID":4,"Gyroscope":{"pitch_rate":0.0185721646994352,"yaw_rate":0.00250079506076872,"roll_rate":-0.064938560128212}},{"Type":"Accelerometer","WorldTime":"11:22:37.5705560","SimulationTime":0.100000008940697,"FrameID":4,"Accelerometer":{"x":-0.28035444021225,"y":0.914236068725586,"z":0.0998981297016144}},{"Type":"CarTelemetries","WorldTime":"11:22:37.5705560","SimulationTime":0.100000008940697,"FrameID":4,"Speed":9.74316310882568,"SteeringAngle":6.10851930105127E-05,"Wheels_Spin":{"WheelFL":249.480972290039,"WheelFR":249.366455078125,"WheelRL":249.458053588867,"WheelRR":249.360443115234}},{"Type":"GPS","WorldTime":"11:22:43.6161970","SimulationTime":0.133333340287209,"FrameID":5,"Latitude":-0.000142108969157562,"Longitude":-0.00303171784617007,"Heading":89.352668762207,"Speed":9.74202251434326,"Name":""},{"Type":"Gyro","WorldTime":"11:22:43.6161970","SimulationTime":0.133333340287209,"FrameID":5,"Gyroscope":{"pitch_rate":0.00671307928860188,"yaw_rate":0.0023413912858814,"roll_rate":-0.0335018187761307}},{"Type":"Accelerometer","WorldTime":"11:22:43.6161970","SimulationTime":0.133333340287209,"FrameID":5,"Accelerometer":{"x":-0.301500141620636,"y":0.698121428489685,"z":-0.0464767217636108}},{"Type":"CarTelemetries","WorldTime":"11:22:43.6161970","SimulationTime":0.133333340287209,"FrameID":5,"Speed":9.74202251434326,"SteeringAngle":0,"Wheels_Spin":{"WheelFL":250.122985839844,"WheelFR":250.005493164063,"WheelRL":250.109130859375,"WheelRR":250.002059936523}},{"Type":"GPS","WorldTime":"11:22:44.9367540","SimulationTime":0.16666667163372,"FrameID":6,"Latitude":-0.000142069082357921,"Longitude":-0.00302880490198731,"Heading":89.3563842773438,"Speed":9.74027729034424,"Name":""},{"Type":"Gyro","WorldTime":"11:22:44.9367540","SimulationTime":0.16666667163372,"FrameID":6,"Gyroscope":{"pitch_rate":0.000926836859434843,"yaw_rate":0.00129420927260071,"roll_rate":0.0221181996166706}},{"Type":"Accelerometer","WorldTime":"11:22:44.9367540","SimulationTime":0.16666667163372,"FrameID":6,"Accelerometer":{"x":-0.104533955454826,"y":0.284596741199493,"z":-0.0395235791802406}},{"Type":"CarTelemetries","WorldTime":"11:22:44.9367540","SimulationTime":0.16666667163372,"FrameID":6,"Speed":9.74027729034424,"SteeringAngle":0,"Wheels_Spin":{"WheelFL":251.398178100586,"WheelFR":251.287368774414,"WheelRL":251.384628295898,"WheelRR":251.288452148438}},{"Type":"GPS","WorldTime":"11:22:45.1238180","SimulationTime":0.200000017881393,"FrameID":7,"Latitude":-0.000142029370181262,"Longitude":-0.0030258831102401,"Heading":89.358039855957,"Speed":9.73808860778809,"Name":""},{"Type":"Gyro","WorldTime":"11:22:45.1238180","SimulationTime":0.200000017881393,"FrameID":7,"Gyroscope":{"pitch_rate":0.000189732760190964,"yaw_rate":-0.000144915247801691,"roll_rate":0.0555581152439117}},{"Type":"Accelerometer","WorldTime":"11:22:45.1238180","SimulationTime":0.200000017881393,"FrameID":7,"Accelerometer":{"x":0.150545805692673,"y":0.0548318065702915,"z":-0.0439630299806595}},{"Type":"CarTelemetries","WorldTime":"11:22:45.1238180","SimulationTime":0.200000017881393,"FrameID":7,"Speed":9.73808860778809,"SteeringAngle":0.000122167737572454,"Wheels_Spin":{"WheelFL":252.27165222168,"WheelFR":252.24382019043,"WheelRL":252.290542602539,"WheelRR":252.250305175781}},{"Type":"GPS","WorldTime":"11:22:45.2978960","SimulationTime":0.233333349227905,"FrameID":8,"Latitude":-0.000141992466524243,"Longitude":-0.00302295596338809,"Heading":89.3575134277344,"Speed":9.73757266998291,"Name":""},{"Type":"Gyro","WorldTime":"11:22:45.2978960","SimulationTime":0.233333349227905,"FrameID":8,"Gyroscope":{"pitch_rate":0.00591291394084692,"yaw_rate":-0.00052359706023708,"roll_rate":0.0615334995090961}},{"Type":"Accelerometer","WorldTime":"11:22:45.2978960","SimulationTime":0.233333349227905,"FrameID":8,"Accelerometer":{"x":0.222734600305557,"y":-0.178719818592072,"z":-0.0365318208932877}},{"Type":"CarTelemetries","WorldTime":"11:22:45.2978960","SimulationTime":0.233333349227905,"FrameID":8,"Speed":9.73757266998291,"SteeringAngle":0.000122167737572454,"Wheels_Spin":{"WheelFL":252.53352355957,"WheelFR":252.540557861328,"WheelRL":252.545288085938,"WheelRR":252.548278808594}},{"Type":"GPS","WorldTime":"11:22:45.5615410","SimulationTime":0.266666680574417,"FrameID":9,"Latitude":-0.000141959841130301,"Longitude":-0.00302002718672156,"Heading":89.356315612793,"Speed":9.7370023727417,"Name":""},{"Type":"Gyro","WorldTime":"11:22:45.5615410","SimulationTime":0.266666680574417,"FrameID":9,"Gyroscope":{"pitch_rate":0.0112417610362172,"yaw_rate":-0.000678822922054678,"roll_rate":0.0702161639928818}},{"Type":"Accelerometer","WorldTime":"11:22:45.5615410","SimulationTime":0.266666680574417,"FrameID":9,"Accelerometer":{"x":0.245079413056374,"y":-0.475563138723373,"z":0.0103415101766586}},{"Type":"CarTelemetries","WorldTime":"11:22:45.5615410","SimulationTime":0.266666680574417,"FrameID":9,"Speed":9.7370023727417,"SteeringAngle":0.000183247626409866,"Wheels_Spin":{"WheelFL":252.736679077148,"WheelFR":252.770797729492,"WheelRL":252.744171142578,"WheelRR":252.773895263672}},{"Type":"GPS","WorldTime":"11:22:45.7065410","SimulationTime":0.300000011920929,"FrameID":10,"Latitude":-0.000141928583616391,"Longitude":-0.00301709678024054,"Heading":89.3553771972656,"Speed":9.73770999908447,"Name":""},{"Type":"Gyro","WorldTime":"11:22:45.7065410","SimulationTime":0.300000011920929,"FrameID":10,"Gyroscope":{"pitch_rate":0.00178188597783446,"yaw_rate":2.46742856688797E-05,"roll_rate":0.0678772628307343}},{"Type":"Accelerometer","WorldTime":"11:22:45.7065410","SimulationTime":0.300000011920929,"FrameID":10,"Accelerometer":{"x":0.114993341267109,"y":-0.862581789493561,"z":0.00912736356258392}},{"Type":"CarTelemetries","WorldTime":"11:22:45.7065410","SimulationTime":0.300000011920929,"FrameID":10,"Speed":9.73770999908447,"SteeringAngle":0.000183247626409866,"Wheels_Spin":{"WheelFL":252.850738525391,"WheelFR":252.869567871094,"WheelRL":252.858261108398,"WheelRR":252.872314453125}},{"Type":"GPS","WorldTime":"11:22:45.8628170","SimulationTime":0.333333343267441,"FrameID":11,"Latitude":-0.000141895798151381,"Longitude":-0.00301416753791273,"Heading":89.3557815551758,"Speed":9.73804759979248,"Name":""},{"Type":"Gyro","WorldTime":"11:22:45.8628170","SimulationTime":0.333333343267441,"FrameID":11,"Gyroscope":{"pitch_rate":-0.00361005892045796,"yaw_rate":0.000491097511257976,"roll_rate":0.0625056177377701}},{"Type":"Accelerometer","WorldTime":"11:22:45.8628170","SimulationTime":0.333333343267441,"FrameID":11,"Accelerometer":{"x":0.0647664144635201,"y":-0.941669225692749,"z":0.011534471064806}},{"Type":"CarTelemetries","WorldTime":"11:22:45.8628170","SimulationTime":0.333333343267441,"FrameID":11,"Speed":9.73804759979248,"SteeringAngle":0.000183247626409866,"Wheels_Spin":{"WheelFL":252.814178466797,"WheelFR":252.812744140625,"WheelRL":252.8212890625,"WheelRR":252.815216064453}},{"Type":"GPS","WorldTime":"11:22:46.0279040","SimulationTime":0.366666674613953,"FrameID":12,"Latitude":-0.000141861775773577,"Longitude":-0.00301124108955264,"Heading":89.3573989868164,"Speed":9.73877716064453,"Name":""},{"Type":"Gyro","WorldTime":"11:22:46.0279040","SimulationTime":0.366666674613953,"FrameID":12,"Gyroscope":{"pitch_rate":-0.00943058542907238,"yaw_rate":0.00108171324245632,"roll_rate":0.0460546128451824}},{"Type":"Accelerometer","WorldTime":"11:22:46.0279040","SimulationTime":0.366666674613953,"FrameID":12,"Accelerometer":{"x":0.0398552939295769,"y":-1.00654375553131,"z":0.0171905942261219}},{"Type":"CarTelemetries","WorldTime":"11:22:46.0279040","SimulationTime":0.366666674613953,"FrameID":12,"Speed":9.73877716064453,"SteeringAngle":0.000122167737572454,"Wheels_Spin":{"WheelFL":252.576766967773,"WheelFR":252.537017822266,"WheelRL":252.584838867188,"WheelRR":252.538757324219}},{"Type":"GPS","WorldTime":"11:22:46.1592160","SimulationTime":0.400000035762787,"FrameID":13,"Latitude":-0.000141827200422995,"Longitude":-0.00300831790082157,"Heading":89.3592910766602,"Speed":9.73929405212402,"Name":""},{"Type":"Gyro","WorldTime":"11:22:46.1592160","SimulationTime":0.400000035762787,"FrameID":13,"Gyroscope":{"pitch_rate":-0.015567815862596,"yaw_rate":0.000504573457874358,"roll_rate":0.0223790351301432}},{"Type":"Accelerometer","WorldTime":"11:22:46.1592160","SimulationTime":0.400000035762787,"FrameID":13,"Accelerometer":{"x":0.0672973841428757,"y":-0.881308555603027,"z":0.00738438218832016}},{"Type":"CarTelemetries","WorldTime":"11:22:46.1592160","SimulationTime":0.400000035762787,"FrameID":13,"Speed":9.73929405212402,"SteeringAngle":0.000122167737572454,"Wheels_Spin":{"WheelFL":252.146667480469,"WheelFR":252.104888916016,"WheelRL":252.140121459961,"WheelRR":252.106414794922}},{"Type":"GPS","WorldTime":"11:22:46.2925860","SimulationTime":0.433333367109299,"FrameID":14,"Latitude":-0.000141792566864751,"Longitude":-0.0030054000671953,"Heading":89.3601455688477,"Speed":9.73945045471191,"Name":""},{"Type":"Gyro","WorldTime":"11:22:46.2925860","SimulationTime":0.433333367109299,"FrameID":14,"Gyroscope":{"pitch_rate":-0.0158915147185326,"yaw_rate":0.000176352594280615,"roll_rate":0.00997055135667324}},{"Type":"Accelerometer","WorldTime":"11:22:46.2925860","SimulationTime":0.433333367109299,"FrameID":14,"Accelerometer":{"x":0.0866813808679581,"y":-0.759121179580688,"z":0.00928132981061935}},{"Type":"CarTelemetries","WorldTime":"11:22:46.2925860","SimulationTime":0.433333367109299,"FrameID":14,"Speed":9.73945045471191,"SteeringAngle":0.000122167737572454,"Wheels_Spin":{"WheelFL":251.881561279297,"WheelFR":251.857925415039,"WheelRL":251.874008178711,"WheelRR":251.858169555664}},{"Type":"GPS","WorldTime":"11:22:46.4219590","SimulationTime":0.466666698455811,"FrameID":15,"Latitude":-0.000141759752295911,"Longitude":-0.00300248712301254,"Heading":89.3600463867188,"Speed":9.73992443084717,"Name":""},{"Type":"Gyro","WorldTime":"11:22:46.4219590","SimulationTime":0.466666698455811,"FrameID":15,"Gyroscope":{"pitch_rate":-0.00979409366846085,"yaw_rate":-0.00033324770629406,"roll_rate":-0.011681804433465}},{"Type":"Accelerometer","WorldTime":"11:22:46.4219590","SimulationTime":0.466666698455811,"FrameID":15,"Accelerometer":{"x":0.115578308701515,"y":-0.451063930988312,"z":0.0268084704875946}},{"Type":"CarTelemetries","WorldTime":"11:22:46.4219590","SimulationTime":0.466666698455811,"FrameID":15,"Speed":9.73992443084717,"SteeringAngle":0.000183247626409866,"Wheels_Spin":{"WheelFL":251.330673217773,"WheelFR":251.338333129883,"WheelRL":251.330642700195,"WheelRR":251.338226318359}},{"Type":"GPS","WorldTime":"11:22:46.5579700","SimulationTime":0.5,"FrameID":16,"Latitude":-0.000141728683956899,"Longitude":-0.00299957720562816,"Heading":89.3594970703125,"Speed":9.74096965789795,"Name":""},{"Type":"Gyro","WorldTime":"11:22:46.5579700","SimulationTime":0.5,"FrameID":16,"Gyroscope":{"pitch_rate":-0.00862599350512028,"yaw_rate":-0.00013398913142737,"roll_rate":-0.0252590328454971}},{"Type":"Accelerometer","WorldTime":"11:22:46.5579700","SimulationTime":0.5,"FrameID":16,"Accelerometer":{"x":0.0630047023296356,"y":-0.331657856702805,"z":0.0231001526117325}},{"Type":"CarTelemetries","WorldTime":"11:22:46.5579700","SimulationTime":0.5,"FrameID":16,"Speed":9.74096965789795,"SteeringAngle":0.000183247626409866,"Wheels_Spin":{"WheelFL":250.987365722656,"WheelFR":251.004364013672,"WheelRL":250.987579345703,"WheelRR":251.004348754883}},{"Type":"GPS","WorldTime":"11:22:46.6971700","SimulationTime":0.533333361148834,"FrameID":17,"Latitude":-0.000141697935760021,"Longitude":-0.00299666938371956,"Heading":89.359619140625,"Speed":9.74147319793701,"Name":""},{"Type":"Gyro","WorldTime":"11:22:46.6971700","SimulationTime":0.533333361148834,"FrameID":17,"Gyroscope":{"pitch_rate":-0.00898778159171343,"yaw_rate":0.000266117189312354,"roll_rate":-0.0297230798751116}},{"Type":"Accelerometer","WorldTime":"11:22:46.6971700","SimulationTime":0.533333361148834,"FrameID":17,"Accelerometer":{"x":0.0244497004896402,"y":-0.212385609745979,"z":0.0223069470375776}},{"Type":"CarTelemetries","WorldTime":"11:22:46.6971700","SimulationTime":0.533333361148834,"FrameID":17,"Speed":9.74147319793701,"SteeringAngle":0.000244324823142961,"Wheels_Spin":{"WheelFL":250.873779296875,"WheelFR":250.881332397461,"WheelRL":250.874069213867,"WheelRR":250.881271362305}},{"Type":"GPS","WorldTime":"11:22:46.8341860","SimulationTime":0.566666722297668,"FrameID":18,"Latitude":-0.00014166726032272,"Longitude":-0.00299376342445612,"Heading":89.361083984375,"Speed":9.74277305603027,"Name":""},{"Type":"Gyro","WorldTime":"11:22:46.8341860","SimulationTime":0.566666722297668,"FrameID":18,"Gyroscope":{"pitch_rate":-0.00599162839353085,"yaw_rate":0.00122400268446654,"roll_rate":-0.0354457423090935}},{"Type":"Accelerometer","WorldTime":"11:22:46.8341860","SimulationTime":0.566666722297668,"FrameID":18,"Accelerometer":{"x":-0.0330432876944542,"y":-0.0400810316205025,"z":0.0283016227185726}},{"Type":"CarTelemetries","WorldTime":"11:22:46.8341860","SimulationTime":0.566666722297668,"FrameID":18,"Speed":9.74277305603027,"SteeringAngle":0.000244324823142961,"Wheels_Spin":{"WheelFL":250.757629394531,"WheelFR":250.715377807617,"WheelRL":250.750885009766,"WheelRR":250.715362548828}},{"Type":"GPS","WorldTime":"11:22:46.9758890","SimulationTime":0.600000023841858,"FrameID":19,"Latitude":-0.000141636453918181,"Longitude":-0.00299085723236203,"Heading":89.3637847900391,"Speed":9.74422836303711,"Name":""},{"Type":"Gyro","WorldTime":"11:22:46.9758890","SimulationTime":0.600000023841858,"FrameID":19,"Gyroscope":{"pitch_rate":-0.00567389279603958,"yaw_rate":0.00172739056870341,"roll_rate":-0.0360512584447861}},{"Type":"Accelerometer","WorldTime":"11:22:46.9758890","SimulationTime":0.600000023841858,"FrameID":19,"Accelerometer":{"x":-0.0722724199295044,"y":0.102697037160397,"z":0.0379331782460213}},{"Type":"CarTelemetries","WorldTime":"11:22:46.9758890","SimulationTime":0.600000023841858,"FrameID":19,"Speed":9.74422836303711,"SteeringAngle":0.000183247626409866,"Wheels_Spin":{"WheelFL":250.739151000977,"WheelFR":250.6689453125,"WheelRL":250.73371887207,"WheelRR":250.65998840332}},{"Type":"GPS","WorldTime":"11:22:47.1197910","SimulationTime":0.633333384990692,"FrameID":20,"Latitude":-0.000141604978125542,"Longitude":-0.00298795104026794,"Heading":89.3671264648438,"Speed":9.74465370178223,"Name":""},{"Type":"Gyro","WorldTime":"11:22:47.1197910","SimulationTime":0.633333384990692,"FrameID":20,"Gyroscope":{"pitch_rate":-0.00475228251889348,"yaw_rate":0.00177123316098005,"roll_rate":-0.0331445522606373}},{"Type":"Accelerometer","WorldTime":"11:22:47.1197910","SimulationTime":0.633333384990692,"FrameID":20,"Accelerometer":{"x":-0.0771607756614685,"y":0.188441663980484,"z":0.0181640386581421}},{"Type":"CarTelemetries","WorldTime":"11:22:47.1197910","SimulationTime":0.633333384990692,"FrameID":20,"Speed":9.74465370178223,"SteeringAngle":0.000183247626409866,"Wheels_Spin":{"WheelFL":250.757751464844,"WheelFR":250.676345825195,"WheelRL":250.760848999023,"WheelRR":250.677429199219}}]}

这是我排序后得到的格式:

{
    "Frame_1": {
        "Gyro": {
            "Y": 0.0431044436991215, 
            "X": -0.128382220864296, 
            "Z": 0.00210362509824336
        }, 
        "Speed": 35.288933944702144
    }, 
    "Frame_0": {
        "Gyro": {
            "Y": 0.00257105240598321, 
            "X": 0.00864287838339806, 
            "Z": 0.00034347633481957
        }, 
        "Speed": 36.00000686645497
    }, 
    "Frame_3": {
        "Gyro": {
            "Y": 0.00671307928860188, 
            "X": -0.0335018187761307, 
            "Z": 0.0023413912858814
        }, 
        "Speed": 35.07128105163574
    }, 
    "Frame_2": {
        "Gyro": {
            "Y": 0.0185721646994352, 
            "X": -0.064938560128212, 
            "Z": 0.00250079506076872
        }, 
        "Speed": 35.07538719177245
    }, 
    "Frame_5": {
        "Gyro": {
            "Y": 0.000189732760190964, 
            "X": 0.0555581152439117, 
            "Z": -0.000144915247801691
        }, 
        "Speed": 35.057118988037125
    }, 
    "Frame_4": {
        "Gyro": {
            "Y": 0.000926836859434843, 
            "X": 0.0221181996166706, 
            "Z": 0.00129420927260071
        }, 
        "Speed": 35.064998245239266
    }, 
    "Frame_7": {
        "Gyro": {
            "Y": 0.0112417610362172, 
            "X": 0.0702161639928818, 
            "Z": -0.000678822922054678
        }, 
        "Speed": 35.05320854187012
    }, 
    "Frame_6": {
        "Gyro": {
            "Y": 0.00591291394084692, 
            "X": 0.0615334995090961, 
            "Z": -0.00052359706023708
        }, 
        "Speed": 35.05526161193848
    }, 
    "Frame_9": {
        "Gyro": {
            "Y": -0.00361005892045796, 
            "X": 0.0625056177377701, 
            "Z": 0.000491097511257976
        }, 
        "Speed": 35.056971359252934
    }, 
    "Frame_8": {
        "Gyro": {
            "Y": 0.00178188597783446, 
            "X": 0.0678772628307343, 
            "Z": 2.46742856688797e-05
        }, 
        "Speed": 35.05575599670409
    }, 
    "Frame_17": {
        "Gyro": {
            "Y": -0.00567389279603958, 
            "X": -0.0360512584447861, 
            "Z": 0.00172739056870341
        }, 
        "Speed": 35.07922210693359
    }, 
    "Frame_16": {
        "Gyro": {
            "Y": -0.00599162839353085, 
            "X": -0.0354457423090935, 
            "Z": 0.00122400268446654
        }, 
        "Speed": 35.073983001708974
    }, 
    "Frame_11": {
        "Gyro": {
            "Y": -0.015567815862596, 
            "X": 0.0223790351301432, 
            "Z": 0.000504573457874358
        }, 
        "Speed": 35.06145858764647
    }, 
    "Frame_10": {
        "Gyro": {
            "Y": -0.00943058542907238, 
            "X": 0.0460546128451824, 
            "Z": 0.00108171324245632
        }, 
        "Speed": 35.05959777832031
    }, 
    "Frame_13": {
        "Gyro": {
            "Y": -0.00979409366846085, 
            "X": -0.011681804433465, 
            "Z": -0.00033324770629406
        }, 
        "Speed": 35.06372795104981
    }, 
    "Frame_12": {
        "Gyro": {
            "Y": -0.0158915147185326, 
            "X": 0.00997055135667324, 
            "Z": 0.000176352594280615
        }, 
        "Speed": 35.06202163696288
    }, 
    "Frame_15": {
        "Gyro": {
            "Y": -0.00898778159171343, 
            "X": -0.0297230798751116, 
            "Z": 0.000266117189312354
        }, 
        "Speed": 35.069303512573235
    }, 
    "Frame_14": {
        "Gyro": {
            "Y": -0.00862599350512028, 
            "X": -0.0252590328454971, 
            "Z": -0.00013398913142737
        }, 
        "Speed": 35.06749076843262
    }, 
    "Frame_18": {
        "Gyro": {
            "Y": -0.00475228251889348, 
            "X": -0.0331445522606373, 
            "Z": 0.00177123316098005
        }, 
        "Speed": 35.08075332641603
    }
}

我希望它被排序,"Frame_1"将是第一个"Frame_2"第二个,然后继续

这是我的密码:

import json

data = {}
frame_counter = 0

with open("C:\\Users\\udis\\Desktop\\Filename.json") as json_data:
    newJson = json.load(json_data)
    logs = newJson['Logs']
    counter = -1

    for item in logs:
        if item['Type'] == 'Gyro':
            counter += 1
            frame = "Frame_%d" % counter
            data[frame] = {'Gyro':{
                'Y':item['Gyroscope']['pitch_rate'],
                'X': item['Gyroscope']['roll_rate'],
                'Z': item['Gyroscope']['yaw_rate']
             },
                'Speed':'Null'
            }


        elif item['Type'] == 'CarTelemetries':
            data[frame]['Speed'] = item['Speed'] * 3.6


    filePathName = "C:\\Users\\udis\\Desktop\\car_data.json"
    with open(filePathName, 'w') as f:
        json.dump(data, f, indent=4)

Tags: ratetypeframegpsspeedrollgyropitch
1条回答
网友
1楼 · 发布于 2024-06-09 07:46:34

Json是无序的,所以当你读回它时,你必须自己排序:

from pprint import pprint
from collections import OrderedDict
import re

d = {
    "Frame_1": {
        "Gyro": {
            "Y": 0.0431044436991215,
            "X": -0.128382220864296,
            "Z": 0.00210362509824336
        },
        "Speed": 35.288933944702144
    },
    # ... etc
}

def sort_my_dict(d):
   l = sorted([(k, v) for k, v in d.items()], key=lambda v: int(re.findall('\d+', v[0])[0]  ))
   return OrderedDict(l)

pprint(sort_my_dict(d))

输出:

OrderedDict([('Frame_0',
              {'Gyro': {'X': 0.00864287838339806,
                        'Y': 0.00257105240598321,
                        'Z': 0.00034347633481957},
               'Speed': 36.00000686645497}),
             ('Frame_1',
              {'Gyro': {'X': -0.128382220864296,
                        'Y': 0.0431044436991215,
                        'Z': 0.00210362509824336},
               'Speed': 35.288933944702144}),
             ('Frame_2',
              {'Gyro': {'X': -0.064938560128212,
                        'Y': 0.0185721646994352,
                        'Z': 0.00250079506076872},
               'Speed': 35.07538719177245}),
#etc...

编辑:

您可以像正常的dict一样访问OrderedDict

sorted_dict = sort_my_dict(d)    
pprint(sorted_dict["Frame_18"])

输出:

{'Gyro': {'X': -0.0331445522606373,
          'Y': -0.00475228251889348,
          'Z': 0.00177123316098005},
 'Speed': 35.08075332641603}

相关问题 更多 >