回答編集履歴

2

追記

2018/05/30 08:17

投稿

can110
can110

スコア38266

test CHANGED
@@ -1,6 +1,14 @@
1
1
  こういうときは[json.loads](https://docs.python.jp/3/library/json.html#json.loads)が便利です。
2
2
 
3
3
  文字列をjson形式とみなしてPythonオブジェクトに変換できます。
4
+
5
+
6
+
7
+ ## 追記
8
+
9
+ 今回のケースではjson.loadsでも可能ですが、tuple,list,dict,setなど任意の型に変換できる`literal_eval`のほうが汎用性は高いです。
10
+
11
+
4
12
 
5
13
  ```Python
6
14
 
@@ -16,4 +24,18 @@
16
24
 
17
25
  print(d)
18
26
 
27
+
28
+
29
+ # json.loadsではtuple,setなどは変換不可。
30
+
31
+ from ast import literal_eval
32
+
33
+ s = "[1,(1,2),{'id':123},{'a','b','c'}]"
34
+
35
+ l = literal_eval(s)
36
+
37
+ for i in l:
38
+
39
+ print(type(i),i)
40
+
19
41
  ```

1

コード修正

2018/05/30 08:17

投稿

can110
can110

スコア38266

test CHANGED
@@ -8,11 +8,11 @@
8
8
 
9
9
  data_list = '[{"id": "3", "name": "Jone", "age": "23"}, {"id": "1", "name": "Anne", "age": "17"}, {"id": "2", "name": "Ken", "age": "21"}]'
10
10
 
11
- l = json.loads(s)
11
+ data_list = json.loads(data_list)
12
12
 
13
- print(l)
13
+ print(data_list)
14
14
 
15
- for d in l:
15
+ for d in data_list:
16
16
 
17
17
  print(d)
18
18