بايثون -حذف كل شي بعد رمز معين ؟
banner
2019-11-20 , 02:58 مساءً
Tq007’s Avatar
Tq007

مشارك

المشاركات:410
التسجيل:Apr 2018
Tq007
1-يا اخوان كيف اطلع الي بالاحمر

بين =,&
[CODE]url = "https://www.adslgate.com/dsl/newthread.php?do=newthread&f=0000"


print url
[/CODE]

2-كيف احذف كل شي بعد & مع ال& :19:
Enlarged Image
2019-11-20 , 02:58 مساءً
2019-11-20 , 07:13 مساءً
anasota’s Avatar
anasota

مشارك

المشاركات:374
التسجيل:Jun 2010
anasota
فيه طريقة regex .. ابحث عنها ممكن تفيدك

وفيه طريقه اسهل .. string.split .. التالي يحول النص لمصفوفه مقصوصه عند كل حرف "&"
[CODE]url.split("&")[/CODE]

وفيه طريقه الاسهل .. string.replace .. تقدر تبحث عن النصوص الي دائما مكرره وتبدلها بفراغ
[CODE]url = url.replace("http.......do=","")[/CODE]
[CODE]url = url.replace("&f=0000","")[/CODE]


كل هذي الطرق تنفعك اذا الي ملون بالاسود دائما ثابت والمتغير بس الي باللون الاحمر
اما اذا الروابط متغيره في اكثر من مكان تقدر تحاول بواسطه regex
2019-11-20 , 07:13 مساءً
2019-11-21 , 03:01 مساءً
Tq007’s Avatar
Tq007

مشارك

المشاركات:410
التسجيل:Apr 2018
Tq007
anasota كتب:
فيه طريقة regex .. ابحث عنها ممكن تفيدك

وفيه طريقه اسهل .. string.split .. التالي يحول النص لمصفوفه مقصوصه عند كل حرف "&"
[CODE]url.split("&")[/CODE]

وفيه طريقه الاسهل .. string.replace .. تقدر تبحث عن النصوص الي دائما مكرره وتبدلها بفراغ
[CODE]url = url.replace("http.......do=","")[/CODE]
[CODE]url = url.replace("&f=0000","")[/CODE]


كل هذي الطرق تنفعك اذا الي ملون بالاسود دائما ثابت والمتغير بس الي باللون الاحمر
اما اذا الروابط متغيره في اكثر من مكان تقدر تحاول بواسطه regex


انا كانت مشكلتي ان اذا نسخت رابط فديو من like list
يضيف الايدي حق السته و وقت الوقوف وكم حاجه ثانيه

سويت كود تحط الرابط ويحذف كل شي له شغل بالست

اخضر متغير / احمر ثابت
[CODE]
import webbrowser
import re


a_website = "https://www.youtube.com/watch?v=Ah-videoid&list=hacmoashotalistlist_abcdf-g&index=90&t=22s"

يغير الارقام لصفر
id = "0"
a_website = "https://www.youtube.com/watch?v=videoid&list=hacmoashotalistlist_abcdf-g&index=%s"% id + "&t=%s" % id + "s"

يتحذف كل شي له شغل بالسته
بعد تغيير الارقام لصفر
a_website = a_website.replace("&list=hacmoashotalistlist_abcdf-g&index=0&t=0s","")



يفتح الرابط بالمتصفح
webbrowser.open_new(a_website)
[/CODE]
2019-11-21 , 03:01 مساءً
2019-11-21 , 04:13 مساءً
Tq007’s Avatar
Tq007

مشارك

المشاركات:410
التسجيل:Apr 2018
Tq007
عندي مشكله

[CODE]import json

with open ('path') as data_file:
data = json.load(data_file)

print (data["videoId"])[/CODE]

يعطي KeyError: 'videoId'
احد يعرف حل جربت كم واحد ولا مشى
الي فهمته لازم اجيبها من ورا


"videoId" : "eeeeeeee",
2019-11-21 , 04:13 مساءً
2019-11-21 , 10:33 مساءً
iSR5’s Avatar
iSR5

Laptop Support Team

المشاركات:3378
التسجيل:Jul 2016
iSR5
Tq007 كتب:
1-يا اخوان كيف اطلع الي بالاحمر

بين =,&
[CODE]url = "https://www.adslgate.com/dsl/newthread.php?do=newthread&f=0000"


print url
[/CODE]2-كيف احذف كل شي بعد & مع ال& :19:



استخدم find :



[CODE]url = "https://www.adslgate.com/dsl/newthread.php?do=newthread&f=0000"
result = url[url.find('=')+1:url.find('&')] #output: newthread
slicedLink = url[0:url.find('&')] #output: https://www.adslgate.com/ds...]
2019-11-21 , 10:33 مساءً
2019-11-22 , 09:32 صباحاً
Tq007’s Avatar
Tq007

مشارك

المشاركات:410
التسجيل:Apr 2018
Tq007
[QUOTE=iSR5;1082640233]استخدم find :



[CODE]url = "https://www.adslgate.com/dsl/newthread.php?do=newthread&f=0000"
result = url[url.find('=')+1:url.find('&')] #output: newthread
slicedLink = url[0:url.find('&')] #output: https://www.adslgate.com/ds...]


[CODE]import json

with open ('path') as data_file:
data = json.load(data_file)

print (data["videoId"])[/CODE]

يعطي KeyError: 'videoId'
احد يعرف حل جربت كم واحد ولا مشى
الي فهمته لازم اجيبها من ورا


"videoId" : "eeeeeeee",
2019-11-22 , 09:32 صباحاً
2019-11-22 , 03:26 مساءً
iSR5’s Avatar
iSR5

Laptop Support Team

المشاركات:3378
التسجيل:Jul 2016
iSR5
Tq007 كتب:
[CODE]import json

with open ('path') as data_file:
data = json.load(data_file)

print (data["videoId"])[/CODE]يعطي KeyError: 'videoId'
احد يعرف حل جربت كم واحد ولا مشى
الي فهمته لازم اجيبها من ورا


"videoId" : "eeeeeeee",

عطني مثال على ال json اللي تحاول تقرأه ..
2019-11-22 , 03:26 مساءً
2019-11-22 , 04:32 مساءً
Tq007’s Avatar
Tq007

مشارك

المشاركات:410
التسجيل:Apr 2018
Tq007
iSR5 كتب:
عطني مثال على ال json اللي تحاول تقرأه ..


ملف لسته حق يوتيوب من قوقل takeout

[CODE]
{
"contentDetails" : {
"videoId" : "rrrrrrrrrrrrr",
"videoPublishedAt" : "2000-11-0000:0:0.000Z"
},
"etag" : "\"rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr\"",
"id" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"kind" : "youtube#playlistItem",
"snippet" : {
"channelId" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"channelTitle" : "rrrrrrrrr",
"description" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"playlistId" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr-rr",
"position" : 2,
"publishedAt" : "2000-00-02T00:00:00.000Z",
"resourceId" : {
"kind" : "youtube#video",
"videoId" : "rrrrrrrrrrrrrrr"
},
"thumbnails" : {
"default" : {
"height" : 90,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 120
},
"high" : {
"height" : 360,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 480
},
"medium" : {
"height" : 180,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 320
},
"standard" : {
"height" : 480,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 640
}
},
"title" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"
},
"status" : {
"privacyStatus" : "public"
}[/CODE]
2019-11-22 , 04:32 مساءً
2019-11-22 , 05:07 مساءً
iSR5’s Avatar
iSR5

Laptop Support Team

المشاركات:3378
التسجيل:Jul 2016
iSR5
Tq007 كتب:
ملف لسته حق يوتيوب من قوقل takeout

[CODE]
{
"contentDetails" : {
"videoId" : "rrrrrrrrrrrrr",
"videoPublishedAt" : "2000-11-0000:0:0.000Z"
},
"etag" : "\"rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr\"",
"id" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"kind" : "youtube#playlistItem",
"snippet" : {
"channelId" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"channelTitle" : "rrrrrrrrr",
"description" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"playlistId" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr-rr",
"position" : 2,
"publishedAt" : "2000-00-02T00:00:00.000Z",
"resourceId" : {
"kind" : "youtube#video",
"videoId" : "rrrrrrrrrrrrrrr"
},
"thumbnails" : {
"default" : {
"height" : 90,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 120
},
"high" : {
"height" : 360,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 480
},
"medium" : {
"height" : 180,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 320
},
"standard" : {
"height" : 480,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 640
}
},
"title" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"
},
"status" : {
"privacyStatus" : "public"
}[/CODE]





videoId هذا داخل مصفوفة الـ contentDetails


فانت بتعمل كذا :

[CODE]data["contentDetails"]["videoId"][/CODE]


[CODE]
import json

json_data = """
{
"contentDetails" : {
"videoId" : "rrrrrrrrrrrrr",
"videoPublishedAt" : "2000-11-0000:0:0.000Z"
},
"etag" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"id" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"kind" : "youtube#playlistItem",
"snippet" : {
"channelId" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"channelTitle" : "rrrrrrrrr",
"description" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"playlistId" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr-rr",
"position" : 2,
"publishedAt" : "2000-00-02T00:00:00.000Z",
"resourceId" : {
"kind" : "youtube#video",
"videoId" : "rrrrrrrrrrrrrrr"
},
"thumbnails" : {
"default" : {
"height" : 90,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 120
},
"high" : {
"height" : 360,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 480
},
"medium" : {
"height" : 180,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 320
},
"standard" : {
"height" : 480,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 640
}
},
"title" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"
},
"status" : {
"privacyStatus" : "public"
}
}
"""

data = json.loads(json_data)

print(data["contentDetails"]["videoId"])



[/CODE]
2019-11-22 , 05:07 مساءً
2019-11-22 , 06:17 مساءً
Tq007’s Avatar
Tq007

مشارك

المشاركات:410
التسجيل:Apr 2018
Tq007
iSR5 كتب:
[SPOILER]




videoId هذا داخل مصفوفة الـ contentDetails


فانت بتعمل كذا :

[CODE]data["contentDetails"]["videoId"][/CODE]


[CODE]
import json

json_data = """
{
"contentDetails" : {
"videoId" : "rrrrrrrrrrrrr",
"videoPublishedAt" : "2000-11-0000:0:0.000Z"
},
"etag" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"id" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"kind" : "youtube#playlistItem",
"snippet" : {
"channelId" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"channelTitle" : "rrrrrrrrr",
"description" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"playlistId" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr-rr",
"position" : 2,
"publishedAt" : "2000-00-02T00:00:00.000Z",
"resourceId" : {
"kind" : "youtube#video",
"videoId" : "rrrrrrrrrrrrrrr"
},
"thumbnails" : {
"default" : {
"height" : 90,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 120
},
"high" : {
"height" : 360,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 480
},
"medium" : {
"height" : 180,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 320
},
"standard" : {
"height" : 480,
"url" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr",
"width" : 640
}
},
"title" : "rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"
},
"status" : {
"privacyStatus" : "public"
}
}
"""

data = json.loads(json_data)

print(data["contentDetails"]["videoId"])



[/CODE]
[/SPOILER]

يعطي ايرور
TypeError: list indices must be integers or slices, not str
حليتها ب اضافه الي بالاحمر
لاكن ماراح يطبع الا الرقم الي تحطه
[CODE]#print (data[0]['contentDetails']['videoId'])
[/CODE]

عشان تطبع كل شي لازم تسوي لوب
[CODE]print([data_item['contentDetails']["videoId"] for data_item in data])
[/CODE]

الحين كيف احط كل videoId في رابط ؟ (1500 واحد)!
ابي اقسم كل 25 في صفحه لحال منين ابدا :66:
youtbe.com/dddd/watch=/+videoId+/ss

طبعا انا افتحه عن طريق [CODE]webbrowser.open_new(a_website)[/CODE]
2019-11-22 , 06:17 مساءً
2019-11-22 , 10:47 مساءً
iSR5’s Avatar
iSR5

Laptop Support Team

المشاركات:3378
التسجيل:Jul 2016
iSR5
Tq007 كتب:


يعطي ايرور
TypeError: list indices must be integers or slices, not str
حليتها ب اضافه الي بالاحمر
لاكن ماراح يطبع الا الرقم الي تحطه
[CODE]#print (data[0]['contentDetails']['videoId'])
[/CODE]عشان تطبع كل شي لازم تسوي لوب
[CODE]print([data_item['contentDetails']["videoId"] for data_item in data])
[/CODE]الحين كيف احط كل videoId في رابط ؟ (1500 واحد)!
ابي اقسم كل 25 في صفحه لحال منين ابدا :66:
youtbe.com/dddd/watch=/+videoId+/ss

طبعا انا افتحه عن طريق [CODE]webbrowser.open_new(a_website)[/CODE]



تقدر تعمل كذا :

[CODE]for x in range(len(data_item)):
if x % 25 == 0:
print(data_item[x]['contentDetails']["videoId"])[/CODE]
2019-11-22 , 10:47 مساءً
2019-11-23 , 10:34 صباحاً
Tq007’s Avatar
Tq007

مشارك

المشاركات:410
التسجيل:Apr 2018
Tq007
iSR5 كتب:
تقدر تعمل كذا :

[CODE]for x in range(len(data_item)):
if x % 25 == 0:
print(data_item[x]['contentDetails']["videoId"])[/CODE]



NameError: name 'data_item' is not defined
2019-11-23 , 10:34 صباحاً
2019-11-23 , 10:50 صباحاً
iSR5’s Avatar
iSR5

Laptop Support Team

المشاركات:3378
التسجيل:Jul 2016
iSR5
Tq007 كتب:
NameError: name 'data_item' is not defined


data_item قصدت فيها الـ data اللي فيها الـ json list
2019-11-23 , 10:50 صباحاً
2019-11-24 , 09:34 مساءً
Tq007’s Avatar
Tq007

مشارك

المشاركات:410
التسجيل:Apr 2018
Tq007
iSR5 كتب:
data_item قصدت فيها الـ data اللي فيها الـ json list


كيف احط 25 videoIdفي https://www.youtube.com/watch?v=videoId

اعتذر على كثره الاسئله
بس ما ارجع هنا الا اذا فقدت الامل:66:
2019-11-24 , 09:34 مساءً