回答編集履歴
2
追記
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
コード修正
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
|
|