Thread View: pl.comp.lang.python
5 messages
5 total messages
Started by =?UTF-8?Q?Cezary
Mon, 16 Dec 2019 17:37
Unicode
Author: =?UTF-8?Q?Cezary
Date: Mon, 16 Dec 2019 17:37
Date: Mon, 16 Dec 2019 17:37
41 lines
568 bytes
568 bytes
Witam. Sorry za lamerstwo, ale mam w pliku (json) linie typu: "sender_name": "Cezary Gr\u00c4\u0085dys", Chcę z tego zrobić "sender_name": "Cezary Grądys", Szkielet skryptu taki: #!/usr/bin/python3 import sys import re try: f = open(sys.argv[1]) if len(sys.argv) > 1 else sys.stdin except FileNotFoundError: print("Brak pliku") exit(1) except PermissionError: print("Brak dostępu do pliku") exit(1) for line in f: line = line.strip() # co tu wstawić ???? print(line) -- Cezary Grądys czarekgr@wa.onet.pl
Re: Unicode
Author: zzz
Date: Tue, 17 Dec 2019 01:15
Date: Tue, 17 Dec 2019 01:15
23 lines
458 bytes
458 bytes
Cezary Gr±dys napisal(a): > > Witam. > Sorry za lamerstwo, ale mam w pliku (json) linie typu: > > "sender_name": "Cezary Gr\u00c4\u0085dys", > > Chcê z tego zrobiæ > > "sender_name": "Cezary Gr±dys", > a = "Cezary Gr\u00c4\u0085dys" a.encode(latin2).decode(utf) albo siekierk±: a.replace("\u00c4\u0085","±") a poprawnie: otworzyæ plik podaj±c jego kodowanie najlepiej za pomoc± json-a(import json) -- =============== zZzZz =============================
Re: Unicode
Author: =?UTF-8?Q?Cezary
Date: Tue, 17 Dec 2019 19:57
Date: Tue, 17 Dec 2019 19:57
58 lines
1253 bytes
1253 bytes
W dniu 17.12.2019 o 02:15, zzz pisze: > Cezary Gr±dys napisal(a): >> >> Witam. >> Sorry za lamerstwo, ale mam w pliku (json) linie typu: >> >> "sender_name": "Cezary Gr\u00c4\u0085dys", >> >> Chcê z tego zrobiæ >> >> "sender_name": "Cezary Gr±dys", >> > > a = "Cezary Gr\u00c4\u0085dys" > a.encode(latin2).decode(utf) > > albo siekierk±: > a.replace("\u00c4\u0085","±") > > a poprawnie: > otworzyæ plik podaj±c jego kodowanie > najlepiej za pomoc± json-a(import json) > Dziêki za odpowied¼. Jsonem siê zainteresowa³em, na razie mam tak: import json with open('message_1.json') as json_file: data = json.load(json_file) for p in data['messages']: print(p["sender_name"]) print(p['timestamp_ms']) print(p['content']) # w tej linii b³±d, chocia¿ kilka wypisuje. No i mam b³±d, wydaje siê, ¿e zwi±zany z wielkosci± pliku, jak skróci³em znacznie dzia³a, komunikaty miêdzy liniami wypisanymi przez print: Traceback (most recent call last): print(p['content']) KeyError: 'content' Process finished with exit code 1 My¶la³em o u¿yciu gron + sed itp i pewnie na tym siê skoñczy, ale wola³ bym bardziej elegancko i przy okazji powalczyæ z wtórnym analfabetyzmem. -- Cezary Gr±dys czarekgr@wa.onet.pl
Re: Unicode
Author: damian@swistowsk
Date: Wed, 18 Dec 2019 02:07
Date: Wed, 18 Dec 2019 02:07
45 lines
945 bytes
945 bytes
W dniu poniedziałek, 16 grudnia 2019 16:37:14 UTC użytkownik Cezary Grądys napisał: > Witam. > Sorry za lamerstwo, ale mam w pliku (json) linie typu: > > "sender_name": "Cezary Gr\u00c4\u0085dys", > > Chcę z tego zrobić > > "sender_name": "Cezary Grądys", > > > Szkielet skryptu taki: > > > #!/usr/bin/python3 > > import sys > import re > > try: > f = open(sys.argv[1]) if len(sys.argv) > 1 else sys.stdin > except FileNotFoundError: > print("Brak pliku") > exit(1) > except PermissionError: > print("Brak dostępu do pliku") > exit(1) > > > > for line in f: > line = line.strip() > > # co tu wstawić ???? > > print(line) > > > - print(p['content']) # w tej linii błąd, chociaż kilka wypisuje. + print(p.get('content', '')) # w tej linii błąd, chociaż kilka wypisuje.
Re: Unicode
Author: =?UTF-8?Q?Cezary
Date: Thu, 19 Dec 2019 13:16
Date: Thu, 19 Dec 2019 13:16
78 lines
2022 bytes
2022 bytes
W dniu 18.12.2019 o 11:07, damian@swistowski.org pisze: > - print(p['content']) # w tej linii błąd, chociaż kilka wypisuje. > + print(p.get('content', '')) # w tej linii błąd, chociaż kilka wypisuje. > Ostatecznie zrobiłem w taki sposób, można ulepszyć, ale juz jest czytelnie: #!/usr/bin/python3.7 import json import datetime def marginesy(l, margines): k = "\n" + margines l = k.join(l.split("\n")) return (l) for i in range(29, 0, -1): file = 'message_' + str(i) + '.json' with open(file) as json_file: data = json.load(json_file) sender_time_old = 'dupa' for p in reversed(data['messages']): sender_name = p["sender_name"].encode("latin").decode("utf") if sender_name == 'Cezary Grądys': margines = '' else: margines = '\t' time = datetime.datetime.fromtimestamp(p["timestamp_ms"] / 1000.0).strftime("%Y-%m-%d %H:%m") sender_time = sender_name + ' ' + time if sender_time_old != sender_time: print("\n" + margines + sender_time) sender_time_old = sender_time if 'content' in p: print(margines + marginesy(p['content'].encode("latin").decode("utf"), margines)) if 'gifs' in p: print(margines, end='') print(p['gifs']) if 'photos' in p: print(margines, end='') print(p['photos']) if 'sticker' in p: print(margines, end='') print(p['sticker']) if 'videos' in p: print(margines, end='') print(p['videos']) if 'share' in p: print(margines, end='') print(p['share']) if 'reactions' in p: print(margines, end='') print(p['reactions']) -- Cezary Grądys czarekgr@wa.onet.pl
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads