
#ArtiChatSki
19.11.2016
07:41:01
добавил это
msg = msg.replace('\n', '').replace('\t', '').replace('\r', '')
но чет
dict object has no attribute replace
ааа твой msg это словарь
честно хз ... че-нить простое типа список туплей, я ваще в этом не рублю)
как мне переход на новую строку заменить на пробел?

Google

Maxim robox
19.11.2016
07:48:14

#ArtiChatSki
19.11.2016
07:51:42
Msg.get('text').replace(...)
for item in jsonfile:
msg = json.loads(item)
msg.get("text").replace('\n', '').replace('\t', '').replace('\r', '')
csvwriter.writerow([
msg["from"].get("username", "unknown"),
msg["from"].get("peer_id", "unknown"),
msg["to"].get("username", "unknown"),
msg["to"].get("peer_id", "unknown"),
get_isodate(msg),
msg.get("text", "no text")
])
что не так?
nonetype object has no attribute replace


Maxim robox
19.11.2016
07:53:55
for item in jsonfile:
msg = json.loads(item)
msg.get("text").replace('\n', '').replace('\t', '').replace('\r', '')
csvwriter.writerow([
msg["from"].get("username", "unknown"),
msg["from"].get("peer_id", "unknown"),
msg["to"].get("username", "unknown"),
msg["to"].get("peer_id", "unknown"),
get_isodate(msg),
msg.get("text", "no text")
])
что не так?
Msg.get не имеет эффекта - ничему не присвоил. Это во-первых.
Во-вторых, сделай if Msg.get...: msg.get(...).replace(...). У тебя сейчас спотыкается на итерации, где нет объекта text

#ArtiChatSki
19.11.2016
07:57:07
тут он есть? msg.get("text", "no text")

Maxim robox
19.11.2016
07:57:52

#ArtiChatSki
19.11.2016
08:01:31
там вообще нигде больше нет text

Maxim robox
19.11.2016
08:02:36
Ладно, я с телефона все равно так себе помощник. Я сваливаю.

#ArtiChatSki
19.11.2016
08:03:21
msg.get("text", "no text")
но эта же строка работает

Google

Maxim robox
19.11.2016
08:09:26

#ArtiChatSki
19.11.2016
08:11:02

Maxim robox
19.11.2016
08:11:41

#ArtiChatSki
19.11.2016
08:11:57
понял
в общем вот этот код онлайн, мне надо добавить замену новой строки на пробел
https://gist.github.com/hay/7f5124f9992038d6c1ed00e1ed52772f

Yan?
19.11.2016
09:12:49
У меня теперь другой вопрос по коду
Используя тот самый, кода как возможно убрать из allTags текст, который находится в div-e, в названии которого фигурирует слово comments?
Вот есть такой див class="b-content-w b-content-w-comments
Я думаю, что сначала выцепить все названия div-ов в лист, затем уже каждый элемент искать на наличие comments и как-то его вырезать из основного текста
html = urlopen("https://vc.ru/p/why-no-leave-ny")
bsObj = BeautifulSoup(html.read())
allTags = bsObj.findAll("p")
file = open("/Users/user/Desktop/pythonFile.txt", "w")
for tag in allTags:
file.write(tag.get_text())

Ray
19.11.2016
09:20:26
используя тот самы, кода - ?

Yan?
19.11.2016
09:21:27
*Тот самый кусок кода

Ray
19.11.2016
09:22:40
ок ... а что значит название дива ?

Nikolay
19.11.2016
09:24:08
это вам в python_beginners

Yan?
19.11.2016
09:24:55
ок ... а что значит название дива ?
Есть <div class="b-content-w b-content-w-comments>, например. Мне нужно весь контент, который содержится внутри него удалить, потому что в имени класса фигурирует слово comments.

Ray
19.11.2016
09:25:12
ну так бы и написали
название дива
подберите регулярку, которая будет матчить нужный класс. Затратно будет сперва вытащить все div элементы в список, и потом итерировать по нему.

b0g3r
19.11.2016
09:29:17
Чего
Какая регулярка

Google

Yan?
19.11.2016
09:29:33
Зачем регулярка?
Я думаю, что можно и без нее как-то справиться.

b0g3r
19.11.2016
09:29:44
Человек суп использует)

Ray
19.11.2016
09:30:25
человек хочет вытащить все дивы и потом только искать нужные
а если их там овер 10 в 6
?
soup.findAll("div", { "class" : регулярка_матчит_все_где_есть_commnet })
шо не так ?

Ivan
19.11.2016
09:33:17
Где найти такой же чат только по cpp?

Ray
19.11.2016
09:35:23

Dan
19.11.2016
09:38:10

Alexey
19.11.2016
09:56:14

Yan?
19.11.2016
09:58:14
Спасибо, буду с регуляркой мучиться

Nikolay
19.11.2016
09:59:04
мучайся

Alexey
19.11.2016
10:01:32

wuzzapcom
19.11.2016
10:52:43
Всем привет
Тут никто случайно не работал с protobuf3 на питоне?

Pavel
19.11.2016
11:12:08

Ssi
19.11.2016
11:54:24

I
19.11.2016
11:55:38

Rustem
19.11.2016
12:25:49
Ребят, как со словаря {'key': 'value'} вытащить 'key'? Имеется список словарей, вот у каждого элемента списка(словаря) нужно получить ключ, а по ключу - значение

Google

b0g3r
19.11.2016
12:26:27
for key, val in dict.items():
print(key, val)

Михаил
19.11.2016
12:26:31
dict.keys()

b0g3r
19.11.2016
12:26:48
человеку нужен не список ключей, а пары ключ-значение

Admin
ERROR: S client not available

Rustem
19.11.2016
12:30:21

Aragaer
19.11.2016
12:30:48
во втором питоне лучше iteritems

b0g3r
19.11.2016
12:31:07
+

Rustem
19.11.2016
12:31:20
3.5 использую

wuzzapcom
19.11.2016
12:55:16

I
19.11.2016
13:00:50
Питон 2.7.11, вроде
А пип от третьего дергаете? Или какой пакетный менеджер сейчас популярен?

wuzzapcom
19.11.2016
13:37:06

Pavel
19.11.2016
13:37:39
если стоит второй и третий рядом, то пип от третьего вызывается командой pip3
ну точнее это зависит от дефолтного питона в системе

wuzzapcom
19.11.2016
13:38:48
Аа
В макоси дефолтный 2.7 вроде, тогда понятно, почему не работает

Pavel
19.11.2016
13:39:24
а третий там из коробки разве есть вообще?
его, небось, через homebrew ставить надо

wuzzapcom
19.11.2016
13:40:37
Хороший вопрос, сейчас проверю

A
19.11.2016
13:41:06

Pavel
19.11.2016
13:41:43
я обычно и второй тоже через homebrew доставляю и с ним работаю

Google

Pavel
19.11.2016
13:41:58
чтобы с системным вообще никакого пересечения не иметь

wuzzapcom
19.11.2016
13:43:40
Чем системные плохи?

Pavel
19.11.2016
13:44:34
как минимум реже обновляются :)
ну и я сильно не уверен что при апгрейде макоси не снесётся всё доставленное в site-packages.
так спокойнее и можно делать вообще что угодно без боязни порушить систему

wuzzapcom
19.11.2016
13:48:25
В принципе да, согласен)

Andrii
19.11.2016
16:08:02

I
19.11.2016
16:11:17
+
ну тут от того фриланса, которым занимаешься, зависит

Andrii
19.11.2016
16:12:36

Pavel
19.11.2016
16:16:14
а почему после фриланса джуном?

Maxim robox
19.11.2016
16:18:30

Pavel
19.11.2016
16:18:49
вирлуаленв ничего не отменяет :)

Ray
19.11.2016
16:19:00