cURL Komudumu Python Scripti olarak yazdım fakat parametleri diziden almak istiyorum

import requests

headers = {
    'Api-key': 'blablabla',
    'Content-Type': 'application/json',
}

data = '[ ' \
        '{ ' \
            '"ID" : "buradaki değeri diziden almak istiyorum" ' \
        '}, ' \
        '{ ' \
            '"ID" : "aynı şekilde buradaki değeri de diziden almak istiyorum" ' \
        '} ' \
       ']'

response = requests.post('https://blablaurl', headers=headers, data=data)

ID key’inin values’unu kendi oluşturduğum diziden nasıl alabilirim arkadaşlar ?

Edit :


index = 1000
'"deviceToken" : "'+str(index)+'", '

Şeklinde bu isteğimi gerçekleştirdim, şimdi de for döngüsü içerisinde bu değeri arttırmayı deneyeceğim o konudu da yardıma ihtiyacım olabilir, aynı isteği 10 kere döndüren ve her seferinde indexi bir attıran bir for döngüsü yeterlidir, teşekkürler herkese şimdiden.

Merhaba. Kodlarınız buraya göre yeniden düzenleyin lütfen:

Tam anlamadım, bur tuple’ın elemanlarına erişmek mi istiyorsunuz?

Edit içerisinde içeriği güncelledim, o sorunu şimdilik çözdüm diyebilirim kod içerisinde de ekledim.

Edit içerisinde belirttiğim gibi şimdi 10 kez dönen bir for döngüsü içerisinde index değerini her seferinde bir arttıran istekler oluşturmak istiyorum.

JSON’i elle uretmek yerine python standart json kutuphanesi kullanmak lazim.

Hatta requests'te data’yi direk python objesi (dict) olarak alip istegi JSON olarak yapan yardimci fonksiyonlar/mekanizmalar vardi diye hatirliyorum.

2 Beğeni

Teşekkürler bakacağım

Doğrudur hocam,
data=json.dumps(gonderilecekDict)

json modülünü içeri aktardıktan sonra
json.loads(parametre)
fonksiyonu ile string içindeki bir json verisini pythondaki dict tipine dönüştürebilirsin. Zaten gerisi basit olacaktır. veri.get(“ID”) veya veri[“ID”] gibi yöntemlerle id değerine ulaşabilirsin.

Teşekkürler arkadaşlar @ertugrulcakici @ggns7

Bu arada farklı bir sorum var umarım bunun da bir cevabı vardır,

Atıyorum içerisinde sadece X ve Y değerleri olan 10,100 arasında String bir dizi oluşturmak istiyorum ama bu dizinin içindeki X ve Y 'lerin hem sırası hem de hem de miktarı random olsun istiyorum bunun bir yolu var mıdır ? @aib @ertugrulcakici @EkremDincel

Bir örnek verir misiniz?

Ne istediğinizi biraz daha açar mısınız?

Mesela içerisinde 10 tane değer alabilen bir stringimiz olsun,

ornek = "EHEHEHEHEH" şeklinde, ben bunlara da ornek[random.randint(0, 10)] şeklinde ulaşabiliyim.

Ben ornek dizisi içerisindeki değerlerinde yani E ve H harflerininde random bir düzende gelmesini istiyorum.

Atıyorum ornek = "EEEEEEEEEE" şeklinde de olabilir.

ornek = "EHHHHEEEHE" şeklinde olabilir, olsun istiyorum.

İstediğimi buldum

def get_random_string(length):
    # put your letters in the following string
    sample_letters = 'EH'
    result_str = ''.join((random.choice(sample_letters) for i in range(length)))
    print("Random string is:", result_str)

get_random_string(10)
import string
import random

def olustur(kacKere=0):
	sonuc = [random.choice(string.ascii_letters) for i in range(kacKere)]

	return sonuc

print(olustur(10))

Sanırım istediğiniz bu.

Üstteki postu editledim, tam olarak istediğim kod editin içindeki kod.

Teşekkür ederim bu arada tekrar tekrar.

Rica ederim, attığım kodları şöyle değiştirirseniz aynı sonucu elde edebilirsiniz.

import string
import random

def olustur(kacKere=0):
	sonuc = "".join((random.choice("EH")) for i in range(kacKere))

	return sonuc

print(olustur(10))

Hocam rahatsız ediyorum çok fazla kusura bakmayın lütfen, oluştur(10) dedikten sonra gelen string üzerinde

ornek[random.randint(0, 10)] buna benzer bir işlem yapabilmem için nasıl bir atama yapmam gerekiyor acaba ?

Yani oluşturulan String’in elemanları içersinde gezmem gerekiyor, atıyorum 5 key’ine gelen Value’yu başka bir değişkene atamam gerekiyor.

Öncelikle terimlere dikkat edin. key ve value sözlük veri yapısına ait terimler.

olustur() fonksiyonunun şu string’i döndürdüğünü varsayalım:

HEHEEEHHHE

Python’da index işlemleri 0’dan başlıyor. Yani bu string’de ilk harf olan “H” harfinin index’i 0.

0 1 2 3 4 5 6 7 8 9
H E H E E E H H H E

Hangi elemana ulaşmak istiyorsanız onun sırasını köşeli parantez ( [] )içerisinde yazmalısınız.
Örnek:

print(olustur(10)[7])`

Sizin kullanımınızı açıklayayım:

random.randint(0, 10) bu kod 0-10 arasında rastgele bir sayı döndürüyor.

ornek[random.randint(0, 10)] bu şekilde bir kullanım uyguladığınızda Python ornek listesi içerisinde randint() metodundan dönen rastgele bir sayıyı index olarak kullanıyor. Yani rastgele bir sayıya denk gelen elemanı çekmiş oluyorsunuz.

Açıklayıcı bilgileriniz için teşekkür ederim tekrar, kendi kodumunda denemeye çalışacağım. Eğer istediğimi elde edemezsem sizlere tekrar danışırım.

Tabii ki :slight_smile:

İstediğim sonucu

'"evetHayir" : "'+str(olustur(10)[random.randint(0,9)])+'"

elde edebildim, teşekkür ederim.

Key ve Value uyarısı için teşekkür ederim, çalıştığım kod içerisinde kafamda öyle tuttuğum için genel olarak anlatıma o şekilde yansıyor