Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 24, 2018 18:30:44

lightmanLP
Зарегистрирован: 2018-11-18
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Кирилица в bytes.

Не работает код. Думаю что проблема в закодированной в байты кирилице. Код и результат ниже.

from urllib import request
import json

while 1:
mu = "https://api.vk.com/method/messages.getHistory?count=10
mes = request.urlopen (mu)
print (mes)
mes = mes.read ()
print (mes)
print (type(mes))
mes = json.load(mes)



<http.client.HTTPResponse object at 0x02B41BD0>
b'{"response":{"count":10,"items":[{"date":1540744665,"from_id":204697425,"id":83,"out":0,"peer_id":204697425,"text":"https:\\/\\/vk.com\\/club172650190 \xd1\x85\xd1\x83\xd0\xbd\xd1\x8f","conversation_message_id":2,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"is_hidden":false},{"date":1541926818,"from_id":-172239935,"id":84,"out":1,"peer_id":204697425,"text":"\xd0\xa1\xd0\xbf\xd0\xb0\xd1\x81\xd0\xb8\xd0\xb1\xd0\xbe \xd0\xb7\xd0\xb0 \xd0\xb8\xd1\x81\xd0\xbf\xd0\xbe\xd0\xbb\xd1\x8c\xd0\xb7\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb8\xd0\xb5 SmartBot!\\n\xd0\x9f\xd1\x80\xd0\xbe\xd0\xb1\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xbf\xd0\xb5\xd1\x80\xd0\xb8\xd0\xbe\xd0\xb4 \xd0\xb7\xd0\xb0\xd0\xba\xd0\xbe\xd0\xbd\xd1\x87\xd0\xb8\xd0\xbb\xd1\x81\xd1\x8f 10.11.18.\\n\xd0\x94\xd0\xbb\xd1\x8f \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb4\xd0\xbe\xd0\xbb\xd0\xb6\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x8f \xd0\xb8\xd1\x81\xd0\xbf\xd0\xbe\xd0\xbb\xd1\x8c\xd0\xb7\xd0\xbe\xd0\xb2\xd0\xb0\xd0\xbd\xd0\xb8\xd1\x8f \xd0\xbd\xd0\xb0\xd1\x88\xd0\xb5\xd0\xb3\xd0\xbe \xd1\x87\xd0\xb0\xd1\x82-\xd0\xb1\xd0\xbe\xd1\x82\xd0\xb0, \xd0\xbf\xd0\xbe\xd0\xb6\xd0\xb0\xd0\xbb\xd1\x83\xd0\xb9\xd1\x81\xd1\x82\xd0\xb0, \xd0\xbf\xd1\x80\xd0\xbe\xd0\xb2\xd0\xb5\xd0\xb4\xd0\xb8\xd1\x82\xd0\xb5 \xd0\xbf\xd0\xbb\xd0\xb0\xd1\x82\xd0\xb5\xd0\xb6 \xd0\xb8\xd0\xbb\xd0\xb8 \xd1\x81\xd0\xbc\xd0\xb5\xd0\xbd\xd0\xb8\xd1\x82\xd0\xb5 \xd1\x82\xd0\xb0\xd1\x80\xd0\xb8\xd1\x84 \xd0\xb2 \xd1\x80\xd0\xb0\xd0\xb7\xd0\xb4\xd0\xb5\xd0\xbb\xd0\xb5 \xd0\x9e\xd0\xbf\xd0\xbb\xd0\xb0\xd1\x82\xd0\xb0: https:\\/\\/vk.cc\\/8GzRLG","conversation_message_id":3,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"is_hidden":false},{"date":1542022196,"from_id":204697425,"id":85,"out":0,"peer_id":204697425,"text":"\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82","conversation_message_id":4,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"is_hidden":false},{"date":1542022227,"from_id":204697425,"id":86,"out":0,"peer_id":204697425,"text":"\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82","conversation_message_id":5,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"is_hidden":false},{"date":1542793474,"from_id":-172239935,"id":87,"out":1,"peer_id":204697425,"text":"https:\\/\\/vk.com\\/club172239935","conversation_message_id":6,"fwd_messages":[],"important":false,"random_id":-2116378113,"attachments":[],"is_hidden":false},{"date":1542794772,"from_id":204697425,"id":88,"out":0,"peer_id":204697425,"text":"d","conversation_message_id":7,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"is_hidden":false},{"date":1542833865,"from_id":204697425,"id":89,"out":0,"peer_id":204697425,"text":"D","conversation_message_id":8,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"is_hidden":false},{"date":1542874202,"from_id":204697425,"id":90,"out":0,"peer_id":204697425,"text":"\xd1\x8b","conversation_message_id":9,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"is_hidden":false},{"date":1543055555,"from_id":204697425,"id":91,"out":0,"peer_id":204697425,"text":"\xd1\x8b","conversation_message_id":10,"fwd_messages":[],"important":false,"random_id":0,"attachments":[],"is_hidden":false}]}}'
<class 'bytes'>
Traceback (most recent call last):
File "D:\py\new 1.py", line 21, in <module>
mes = json.load(mes)
File "D:\Program Files (x86)\Python37-32\lib\json\__init__.py", line 293, in load
return loads(fp.read(),
AttributeError: 'bytes' object has no attribute 'read'
>>>

Офлайн

#2 Ноя. 24, 2018 18:45:43

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Кирилица в bytes.

lightmanLP
нет, читайте внимательнее сообщения которые вам пишет интерпретатор.
Если кратко вы перепутали функции load и loads. Почитайте отличия в документации к модулю jsonю
P.S. и да, нужно из байт перевести в строку.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Ноя. 24, 2018 19:28:34

lightmanLP
Зарегистрирован: 2018-11-18
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Кирилица в bytes.

JOHN_16
lightmanLPнет, читайте внимательнее сообщения которые вам пишет интерпретатор. Если кратко вы перепутали функции load и loads. Почитайте отличия в документации к модулю jsonюP.S. и да, нужно из байт перевести в строку.
Оу. Спасибо.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version