teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

文章ミス

2020/09/18 06:12

投稿

taiki9121
taiki9121

スコア18

title CHANGED
File without changes
body CHANGED
@@ -65,6 +65,6 @@
65
65
  1 hanako 0002 2
66
66
  ```
67
67
 
68
- のように引数に任意のキールートを指定することで2つ以上のカラムを出力するようしたいです。
68
+ のように引数に複数のキールートを指定することで2つ以上のカラムを出力するようしたいです。
69
69
  強引にfor文を使えばできなくもなさそうですが、2重ループにも3重ループにもなりそうで処理的に無駄が多いような気がしてなりません...
70
70
  そもそもjson_to_dfのような実装じゃなくて、もっと簡単な手法などがありましたらご教授お願いします。

3

文章ミス

2020/09/18 06:12

投稿

taiki9121
taiki9121

スコア18

title CHANGED
File without changes
body CHANGED
@@ -25,7 +25,7 @@
25
25
  }]
26
26
  ```
27
27
 
28
- 上記のようなjsonデータを用いて、string型の任意のキーのルートを示す値を渡すことで、そのキーに対応するデータをDataFarmeとして実装したのが下記になります。
28
+ 上記のようなjsonデータを用いて、string型の任意のキーのルートを示す値を渡すことで、そのキーに対応するデータをDataFarmeとして出力するように実装したのが下記になります。
29
29
 
30
30
  ```ここに言語を入力
31
31
  def json_to_df(jsons, str_keys):
@@ -43,7 +43,7 @@
43
43
  return pd.DataFrame(res, columns=[keys[-1]])
44
44
  ```
45
45
 
46
- 上記を実行すると
46
+ これを実行すると
47
47
  ```ここに言語を入力
48
48
  res = json_to_df(jsons, "user.name")
49
49
  print(res)

2

文章ミス

2020/09/18 06:08

投稿

taiki9121
taiki9121

スコア18

title CHANGED
File without changes
body CHANGED
@@ -29,7 +29,7 @@
29
29
 
30
30
  ```ここに言語を入力
31
31
  def json_to_df(jsons, str_keys):
32
- keys= str_keys.split(",")
32
+ keys= str_keys.split(".")
33
33
  res = []
34
34
 
35
35
  for json in jsons :
@@ -45,7 +45,7 @@
45
45
 
46
46
  上記を実行すると、
47
47
  ```ここに言語を入力
48
- res = json_to_df(jsons, "user,name")
48
+ res = json_to_df(jsons, "user.name")
49
49
  print(res)
50
50
 
51
51
  # name
@@ -58,7 +58,7 @@
58
58
  ただ、求めているものは、
59
59
 
60
60
  ```ここに言語を入力
61
- res= json_to_df(jsons, ["user,name","user,id","user,status,level"])
61
+ res= json_to_df(jsons, ["user.name","user.id","user.status.level"])
62
62
  print(res)
63
63
  # name id level
64
64
  0 taro 0001 1

1

変数名ミス

2020/09/18 06:06

投稿

taiki9121
taiki9121

スコア18

title CHANGED
File without changes
body CHANGED
@@ -32,14 +32,14 @@
32
32
  keys= str_keys.split(",")
33
33
  res = []
34
34
 
35
- for item in items:
35
+ for json in jsons :
36
36
  for i, key in enumerate(keys):
37
- if key in item:
37
+ if key in json :
38
- item = item[key]
38
+ json = json [key]
39
39
  else:
40
40
  return None
41
41
  if i >= len(keys) - 1:
42
- res.append(item)
42
+ res.append(json)
43
43
  return pd.DataFrame(res, columns=[keys[-1]])
44
44
  ```
45
45
 
@@ -65,6 +65,6 @@
65
65
  1 hanako 0002 2
66
66
  ```
67
67
 
68
- のように引数任意のキールートを指定することで2つ以上のカラムを出力するようしたいです。
68
+ のように引数任意のキールートを指定することで2つ以上のカラムを出力するようしたいです。
69
69
  強引にfor文を使えばできなくもなさそうですが、2重ループにも3重ループにもなりそうで処理的に無駄が多いような気がしてなりません...
70
70
  そもそもjson_to_dfのような実装じゃなくて、もっと簡単な手法などがありましたらご教授お願いします。