辞書のリスト(およびその中の他のリスト)のように見えるリストをパンダデータフレームに変換したいと思います。
これが私のデータのサンプルです:
['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('\\')]