0

辞書のリスト(およびその中の他のリスト)のように見えるリストをパンダデータフレームに変換したいと思います。

これが私のデータのサンプルです:

['b"{',
 'n  boxers: [',
 'n    {',
 'n      age: 30,',
 'n      hasBoutScheduled: true,',
 'n      id: 489762,',
 'n      last6: [Array],',
 "n      name: 'Andy Ruiz Jr',",
 'n      points: 754,',
 'n      rating: 100,',
 'n      record: [Object],',
 'n      residence: [Object],',
 "n      stance: 'orthodox'",
 'n    },',
 'n    {',
 'n      age: 34,',
 'n      hasBoutScheduled: true,',
 'n      id: 468841,',
 'n      last6: [Array],',
 "n      name: 'Deontay Wilder',",
 'n      points: 622,',
 'n      rating: 100,',
 'n      record: [Object],',
 'n      residence: [Object],',
 "n      stance: 'orthodox'",
 'n    },',
 'n    {',
 'n      age: 30,',
 'n      hasBoutScheduled: true,',
 'n      id: 659461,',
 'n      last6: [Array],',
 "n      name: 'Anthony Joshua',",
 'n      points: 603,',
 'n      rating: 100,',
 'n      record: [Object],',
 'n      residence: [Object],',
 "n      stance: 'orthodox'",
 'n    },'

これは私がこれまでに試したことです:

pd.DataFrame.from_records(unclean_file)

これにより、約 27 列が生成されます。おそらく、スペース区切り、コンマなどごとに 1 列です。

また、コレクションのインポート ChainMap から ChainMap を使用してみました

pd.DataFrame.from_dict(ChainMap(*unclean_file),orient='index',columns=['age','hasBoutScheduled','id','last6','name','points','rating','record','residence','stance'])

これにより、次のエラー メッセージが生成されます。ValueError: 辞書更新シーケンス要素 #0 の長さは 1 です。2が必要です

注:データを抽出したときにリストに変換しました-明確にするために、裸のパッケージを使用してjson出力を返すnode.jsファイルを実行しています。これは変数successに保存され、最初はバイト文字列形式で、次にに変換されますリスト:

success = muterun_js('index.js')
unclean_file = [str(success.stdout).split('\\')]
4

2 に答える 2