Soru Unicode verilerini python'a dönüştür


URL’den değerler alındı:

user_data = {}
if (request.args.get('title')) :
    user_data['title'] =request.args.get('title')
if(request.args.get('limit')) :
    user_data['limit'] =    request.args.get('limit')

Sonra onu kullanarak

if 'limit' in user_data :
    limit = user_data['limit']
conditions['id'] = {'id':1}
int(limit)
print type(limit)
data = db.entry.find(conditions).limit(limit)

Bu yazdırır: <type 'unicode'>

ama almaya devam ediyorum type arasında limit gibi unicode, sorgudan bir hata ortaya çıkarır! Unicode'u int'ye dönüştürüyorum ama neden dönüştürme yapmıyor? Lütfen yardım et!!!


25
2018-05-10 06:33


Menşei




Cevaplar:


int(limit) Bir tam sayıya dönüştürülen değeri döndürür ve işlevi çağırdığınız sırada değiştirmez (beklediğiniz şey budur).

Bunun yerine şunu yapın:

limit = int(limit)

Veya tanımlarken limit:

if 'limit' in user_data :
    limit = int(user_data['limit'])

46
2018-05-10 06:34



Mantığı aldım .. Teşekkürler - Sankalp Mishra
+1 Ve tarafından doesn't change it immediately Anlamı, referans olarak değiştirmez. - Jared
@Jared Bunu ekleyeceğim, teşekkürler :). İfadelerimin bir şekilde mükemmel olmadığını biliyordum: p - TerryA
Bunu oylamak istemedim - MANCHUCK
@MANCHUCK Bunun için endişelenme :) - TerryA


Python'da tamsayı ve dizgiler değişmez ve değere göre geçti. Bir dizgeyi veya tamsayıyı bir işleve geçiremezsiniz ve bağımsız değişkenin değiştirilmesini bekleyebilirsiniz.

Dize dönüştürmek için limit="100" bir sayıya, yapmanız gereken

limit = int(limit) # will return new object (integer) and assign to "limit"

Eğer sen Gerçekten mi onun etrafında gitmek istiyorum, bir liste kullanabilirsiniz. Listeler python'da değiştirilebilir; Bir listeyi geçtiğinizde, referans değil, kopyalamanız gerekir. Yani yapabilirsin:

def int_in_place(mutable):
    mutable[0] = int(mutable[0])

mutable = ["1000"]
int_in_place(mutable)
# now mutable is a list with a single integer

Ama buna gerçekten ihtiyacın yok. (Belki de bazen yineleme ile çalışırken ve bazı değişken durumları geçmeniz gerektiğinde).


7
2018-05-10 06:51