Как распаковать вложенные списки?
a = [a1,a2,a3,a4,a5,a6,a7,a8]
b = [b1,b2,b3,b4,b5,b6,b7,b8]
c = [c1,c2,c3,c4,c5,c6,c7,c8]
d = [d1,d2,d3,d4,d5,d6,d7,d8]
abc = [a, b, c, d]
json_string = json.dumps(abc)
s = socket.socket()
s.connect(('192.168.1.151', 41234))
s.send(json_string.encode())
# receive data from the server
print(s.recv(1024))
time.sleep(0.5)
# close the connection
s.close()
я их принимаю
while True:
# Establish connection with client.
connect, addr = s.accept()
print('Got connection from', addr)
string_js = connect.recv(1024)
json.loads(string_js)
print(string_js)
print(str(string_js[1]))
в первом случае принт выдает данные, а во втором выходит 91 вне зависимости от данных как мне разбить список на внутренние списки?
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
Причина засора в строке json.loads(string_js)
- это бесполезная строка, результат работы метода никак не используется. А 91 - это ASCII код квадратной скобки, т.е. первого символа строкового представления списка.
import json
import random
a = list(random.sample(range(100),8))
b = list(random.sample(range(100),8))
c = list(random.sample(range(100),8))
d = list(random.sample(range(100),8))
abc = [a, b, c, d]
json_string = json.dumps(abc)
se = json_string.encode()
string_js = se
# string_js = json.loads(se)
print(string_js)
print(str(string_js[1]))
b'[[13, 89, 65, 21, 52, 64, 57, 39], [26, 70, 61, 79, 37, 59, 11, 39], [37, 8, 73, 64, 58, 13, 47, 95], [57, 30, 12, 21, 51, 73, 69, 59]]'
91
Если присвоить результат json.loads(string_js)
переменной, то получается как нужно:
import json
import random
a = list(random.sample(range(100),8))
b = list(random.sample(range(100),8))
c = list(random.sample(range(100),8))
d = list(random.sample(range(100),8))
abc = [a, b, c, d]
json_string = json.dumps(abc)
se = json_string.encode()
# string_js = se
string_js = json.loads(se)
print(string_js)
print(str(string_js[1]))
[[98, 80, 89, 96, 93, 31, 36, 15], [35, 21, 44, 80, 33, 23, 38, 65], [88, 0, 97, 65, 92, 84, 72, 99], [57, 17, 78, 64, 94, 18, 81, 40]]
[35, 21, 44, 80, 33, 23, 38, 65]