shionoya
@shionoya (瞳 塩野谷)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

拡張子がtxt,jsの数値データをPython3で解析する方法についての質問

Q&A

Closed

以下に示す数値データをPython3で解析し、この数値を用いてグラフを作成したいと考えています。しかし、数値データの読み込み方がわかりません。以下の2つの拡張子のデータそれぞれについて方法を教えていただければ幸いです。
①txt
②js(拡張子jsについて: https://wa3.i-3-i.info/word11804.html)

数値データは以下のようなものです。
const steps = [
{step:0,particles: [{x:12,y:2,k:[-0.9,-0.6,-0.1,0.9,-0.2,0,0,-0.1,0.5,0,-0.8,0.9,1,-0.6,1,-0.3,-0.7,0.5,0.6,0.6,0.7,0.4,0.2,-0.1,-0.8,-0.5,-0.5,0.3,-0.9,0.9,-0.5,-1,-0.7,0.2,0.7,-0.1,-0.9,-0.3,0.6,0.6,0.5,0.8,0.2,0.4,1,0,1,-0.8,-0.8,0.5,]},{x:9,y:5,k:[0.7,0.9,-0.3,-0.2,-0.2,-0.1,0.1,0.1,-0.9,0,-0.1,-0.4,0.1,0.2,0.7,-0.5,0.9,0.8,0,0.4,0.2,-0.7,-0.1,-0.7,0.7,-0.1,0.1,0.4,-0.1,0.4,-0.3,-0.7,0.2,0.4,0.1,0.8,-1,-0.8,-0.2,-0.9,0.2,0.8,-0.5,-1,-0.3,-0.9,-0.6,-0.4,0.8,0.4,]}

拙い質問ですがご回答いただければ幸いです。

0

1Answer

はじめに

pythonの標準ライブラリにグラフを描画するライブラリは無いと思いますので、pythonを使ってグラフ描画したいなら、Matplotlibpandasを使うことになると思います。そして、それぞれに読み込むとなるとそれぞれのやり方がありますので回答も多種多様になってきます。

質問文でライブラリに触れてない所を見るとそこまで理解してないと思われますので、とりあえず、「それぞれのデータファイルをpythonのdictオブジェクトに変換したい」というものだと質問を理解して進めます。
いったんdictオブジェクトに変換した後は、numpy arrayなどにまた変換すれば上にあげたライブラリを使ってグラフを描画することができます。

txtファイルの読み込み

しかし、数値データの読み込み方がわかりません。以下の2つの拡張子のデータそれぞれについて方法を教えていただければ幸いです。
①txt

コチラの記事をみれば、読み込みについては解決します。読み込んだ文字列をどう整形してdictに落とし込めばいいのかは実際のデータを見せていただかないと答えられそうにありません。

jsファイルの読み込み

数値データは以下のようなものです。
const steps = [
{step:0,particles: [{x:12,y:2,k:[-0.9,-0.6,-0.1,0.9,-0.2,0,0,-0.1,0.5,0,-0.8,0.9,1,-0.6,1,-0.3,-0.7,0.5,0.6,0.6,0.7,0.4,0.2,-0.1,-0.8,-0.5,-0.5,0.3,-0.9,0.9,-0.5,-1,-0.7,0.2,0.7,-0.1,-0.9,-0.3,0.6,0.6,0.5,0.8,0.2,0.4,1,0,1,-0.8,-0.8,0.5,]},{x:9,y:5,k:[0.7,0.9,-0.3,-0.2,-0.2,-0.1,0.1,0.1,-0.9,0,-0.1,-0.4,0.1,0.2,0.7,-0.5,0.9,0.8,0,0.4,0.2,-0.7,-0.1,-0.7,0.7,-0.1,0.1,0.4,-0.1,0.4,-0.3,-0.7,0.2,0.4,0.1,0.8,-1,-0.8,-0.2,-0.9,0.2,0.8,-0.5,-1,-0.3,-0.9,-0.6,-0.4,0.8,0.4,]}

jsの配列に保存されてるデータをグラフ描画したいがためにpythonでjsファイルを読み込んでjsを実行するというのは良い方法ではないと思います。(PyV8というライブラリでそれが実現できそうですが...)

なので、**「Node.jsでJSONファイルを生成してからJSONファイルをpythonで読み込む」**という方法をオススメします。

Node.jsとは

pythonの様にサーバーサイドで動くjavascriptです。

JSONファイルとは

JSONファイルとはjavascriptのオブジェクトの書かれ方で記述されてるデータの保存形式です。

Node.jsでjsonを生成する方法

これを全て今の理解度に合わせて1から説明を書くのは大変なので自分で進めるときに理解しやすいように概要だけかきます。それぞれ調べながら進めると出来ると思います。

  1. Node.jsをインストールします。
  2. 数値データのjsファイルにstepsオブジェクトをJSONに変換する処理を書きます。
  3. 2に加えて、JSONを.jsonファイルとして書き出す

Pythonでjsonファイルを読み込んでdictオブジェクトに変換する方法

こちらも概要だけ書きます。

1. jsonファイルを文字列として読み込む
2. 文字列をjsonとしてデコードする

終わりに

以上になります! また、わからないことがあれば問題を細分化して質問されると回答が付きやすいと思います。
ちなみに、今回は変換を全てプログラムで行う様に回答しましたが、jsファイルのstepsに代入されてる配列をコピーしてそのままpythonで文字列としてペーストしてjsonとしてデコードした方が早い気がします。

1Like

Your answer might help someone💌