19
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi đang gửi một chuỗi JSON từ Objective-C đến Python. Sau đó, tôi muốn chia nội dung của chuỗi vào danh sách Python. Tôi đang cố gắng lặp lại một chuỗi [bất kỳ chuỗi nào bây giờ]:
import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for key, value in jdata.iteritems[]:
print key, value
Tôi nhận được lỗi này:
Lỗi ngoại lệ: 'Danh sách' đối tượng không có thuộc tính 'lặp lại'
Hỏi ngày 18 tháng 12 năm 2012 lúc 17:17Dec 18, 2012 at 17:17
Dữ liệu JSON của bạn là danh sách các từ điển, vì vậy sau json.loads[s]
, bạn sẽ có jdata
làm danh sách, không phải là một từ điển.
Hãy thử một cái gì đó như sau:
import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
Đã trả lời ngày 18 tháng 12 năm 2012 lúc 17:20Dec 18, 2012 at 17:20
Andrew Clarkandrew ClarkAndrew Clark
196K33 Huy hiệu vàng265 Huy hiệu bạc297 Huy hiệu Đồng33 gold badges265 silver badges297 bronze badges
json.loads[s]
sẽ trả lại cho bạn list
. Để lặp lại nó, bạn không cần
import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
0.>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
Đã trả lời ngày 18 tháng 12 năm 2012 lúc 17:19Dec 18, 2012 at 17:19
1
Đối với Python 3.6 ở trên, có một chút khác biệt
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
print [jdata]
for d in jdata:
for key, value in d.items[]:
print [key, value]
[{'i': 'imap.gmail.com', 'p': 'someP@ss'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}]
i imap.gmail.com
p someP@ss
i imap.aol.com
p anoterPass
Đã trả lời ngày 24 tháng 5 năm 2017 lúc 8:00May 24, 2017 at 8:00
Xiyuruixiyuruixiyurui
2153 Huy hiệu bạc4 Huy hiệu đồng3 silver badges4 bronze badges
1
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận : test_str = [“[{‘Gfg’ : 3, ‘Best’ : 8}, {‘Gfg’ : 4, ‘Best’ : 8}]”] Output : [[{‘Gfg’: 3, ‘Best’: 8}, {‘Gfg’: 4, ‘Best’: 8}]] Explanation : String converted to list of dictionaries. Input : test_str = [“[{‘Gfg’ : 3, ‘Best’ : 8}]”] Output : [[{‘Gfg’: 3, ‘Best’: 8}]] Explanation : String converted to list of dictionaries.
Phương thức #1: & nbsp; sử dụng json.loads [] + thay thế []
Sự kết hợp của các chức năng trên có thể được sử dụng để giải quyết vấn đề này. Trong đó, chúng tôi thay thế các chuỗi bên trong bằng cách sử dụng danh sách thay thế [] và từ điển được tạo bằng tải [].
Python3
import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
1 import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
2import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
3import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
4 import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
5import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
6import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
7import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
8import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
9>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
0 >>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
1 >>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
2>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
3>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
4import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
4 >>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
6>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
7>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
8>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
9 s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
print [jdata]
for d in jdata:
for key, value in d.items[]:
print [key, value]
[{'i': 'imap.gmail.com', 'p': 'someP@ss'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}]
i imap.gmail.com
p someP@ss
i imap.aol.com
p anoterPass
0s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
print [jdata]
for d in jdata:
for key, value in d.items[]:
print [key, value]
[{'i': 'imap.gmail.com', 'p': 'someP@ss'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}]
i imap.gmail.com
p someP@ss
i imap.aol.com
p anoterPass
1 s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
print [jdata]
for d in jdata:
for key, value in d.items[]:
print [key, value]
[{'i': 'imap.gmail.com', 'p': 'someP@ss'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}]
i imap.gmail.com
p someP@ss
i imap.aol.com
p anoterPass
2import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
8import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
9s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
print [jdata]
for d in jdata:
for key, value in d.items[]:
print [key, value]
[{'i': 'imap.gmail.com', 'p': 'someP@ss'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}]
i imap.gmail.com
p someP@ss
i imap.aol.com
p anoterPass
5 >>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
1 >>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
2s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
print [jdata]
for d in jdata:
for key, value in d.items[]:
print [key, value]
[{'i': 'imap.gmail.com', 'p': 'someP@ss'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}]
i imap.gmail.com
p someP@ss
i imap.aol.com
p anoterPass
8Đầu ra
The original string is : ["[{'Gfg' : 3, 'Best' : 8}, {'Gfg' : 4, 'Best' : 9}]"] Converted list of dictionaries : [[{'Gfg': 3, 'Best': 8}, {'Gfg': 4, 'Best': 9}]]
Phương pháp số 2: Sử dụng Eval []
Đây là một trong những cách mà nhiệm vụ này có thể được thực hiện. Eval [], đánh giá nội bộ kiểu dữ liệu và kết quả yêu cầu trả về.
Python3
import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
3import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
4 The original string is : ["[{'Gfg' : 3, 'Best' : 8}, {'Gfg' : 4, 'Best' : 9}]"] Converted list of dictionaries : [[{'Gfg': 3, 'Best': 8}, {'Gfg': 4, 'Best': 9}]]1
import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
8import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
9>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
0 >>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
1 >>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
2>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
3>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
4import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
4 >>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
6>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
7>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
8>>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
9 s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
print [jdata]
for d in jdata:
for key, value in d.items[]:
print [key, value]
[{'i': 'imap.gmail.com', 'p': 'someP@ss'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}]
i imap.gmail.com
p someP@ss
i imap.aol.com
p anoterPass
0s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
print [jdata]
for d in jdata:
for key, value in d.items[]:
print [key, value]
[{'i': 'imap.gmail.com', 'p': 'someP@ss'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}]
i imap.gmail.com
p someP@ss
i imap.aol.com
p anoterPass
1 s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
print [jdata]
for d in jdata:
for key, value in d.items[]:
print [key, value]
[{'i': 'imap.gmail.com', 'p': 'someP@ss'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}]
i imap.gmail.com
p someP@ss
i imap.aol.com
p anoterPass
2import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
8import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
9s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
print [jdata]
for d in jdata:
for key, value in d.items[]:
print [key, value]
[{'i': 'imap.gmail.com', 'p': 'someP@ss'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}]
i imap.gmail.com
p someP@ss
i imap.aol.com
p anoterPass
5 >>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
1 >>> jdata = json.loads[s]
>>> for doc in jdata:
... for key, value in doc.iteritems[]:
... print key, value
2s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
print [jdata]
for d in jdata:
for key, value in d.items[]:
print [key, value]
[{'i': 'imap.gmail.com', 'p': 'someP@ss'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}]
i imap.gmail.com
p someP@ss
i imap.aol.com
p anoterPass
8Đầu ra
The original string is : [{'Gfg' : 3, 'Best' : 8}, {'Gfg' : 9, 'Best' : 9}] Converted list of dictionaries : [{'Gfg': 3, 'Best': 8}, {'Gfg': 9, 'Best': 9}]
Phương pháp số 2: Sử dụng Eval []
Đây là một trong những cách mà nhiệm vụ này có thể được thực hiện. Eval [], đánh giá nội bộ kiểu dữ liệu và kết quả yêu cầu trả về.O[n]
3import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
4 import json
s = '[{"i":"imap.gmail.com","p":"someP@ss"},{"i":"imap.aol.com","p":"anoterPass"}]'
jdata = json.loads[s]
for d in jdata:
for key, value in d.iteritems[]:
print key, value
The original string is : ["[{'Gfg' : 3, 'Best' : 8}, {'Gfg' : 4, 'Best' : 9}]"]
Converted list of dictionaries : [[{'Gfg': 3, 'Best': 8}, {'Gfg': 4, 'Best': 9}]]
1O[n]