Come posso restituire argomento stringa senza parentesi e citazioni in Python

StackOverflow https://stackoverflow.com//questions/22025695

  •  21-12-2019
  •  | 
  •  

Domanda

Sono molto nuovo a Python e così sto lottando con ciò che probabilmente è molto semplice per un programmatore Python stagionato.

Il problema qui sotto è che quando l'argomento Gruppo è fornito con un valore, viene valutato a ["GroupID"].

Qualcuno può spiegare come concatenare la stringa in modo che abbia semplicemente il valore Gruppoid senza le staffe quadre e le citazioni dei single?

Molte grazie,

import sys
import xbmcgui
import xbmcplugin
import urllib
import urlparse

import xbmc, xbmcaddon, xbmcvfs, simplejson, urllib2

base_url = sys.argv[0]
addon_handle = int(sys.argv[1])
args = urlparse.parse_qs(sys.argv[2][1:])

xbmcplugin.setContent(addon_handle, 'movies')

def build_url(query):
    return base_url + '?' + urllib.urlencode(query)

mode = args.get('mode', None)
groupid = args.get('groupid', None)

if (groupid is None): 
    testurl = 'hxxp://webserver.com/json.php'
else:
    testurl = 'hxxp://webserver.com/json.php?group=' + str(groupid)

req = urllib2.urlopen(testurl)
response = req.read()
req.close()
.

È stato utile?

Soluzione

urlparrse.parse_qs restituisce sempre un dizionario di elenchi, poiché un nome di parametro potrebbe essere ripetuto nella stringa di query e la restituzione di un elenco ti consentirà di vedere più valori del parametro.Dal momento che presumibilmente si aspetta solo un valore per il tuo parametro della query di "GroupID", vuoi solo il primo elemento dell'elenco, quindi:

groupid[0]
.

invece di

str(groupid)
.

str (Groupid) stava stampando una rappresentazione di stringa dell'elenco.

Altri suggerimenti

In Python, [] è la stenografia per list() (ad esempio "[GruppoD_1", 'GroupID_2', 3, 4])

Quindi nel tuo codice: groupid = args.get('groupid' or None) Il .get('groupid', ... sembra restituire un dict() (poiché .get viene utilizzato su Dicts), ma restituisce un list().

E.G.

args = {
    'groupid': [1, 14, 23]
    ...
}
.

Allora: GroupID= args.get ('GroupID')

fa

GroupID= [1, 14, 23]

Quindi chiamare str(groupid) restituisce "[1, 14, 23]"

considerando che chiamando str(groupid[1]) restituisce 14

Risposta Cambia il tuo str(groupid) in str(groupid[0]).

Usando [#] (ad esempio [0]), sta dicendo, restituisce il primo elemento nell'elenco, mentre [1], afferma il secondo elemento nell'elenco.[#] Nella programmazione è chiamata indexing

In terminale, puoi provarlo:

>>> groupid = ['asd']
>>> groupid
['asd']
>>> str(groupid)
"['asd']"
>>> str(groupid[0])
'asd'
>>> 
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top