Получение аргументов строки запроса в порядке в Python - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть серверная программа, получающая аргументы строки запроса, такие как:

http://www.example/page.py?a=10&b=5&c=6

Мне нужно объединить аргументы по порядку, т.е. мне нужна строкакоторый содержит + B + C.Я пытаюсь получить доступ к аргументам строки запроса следующим образом:

#!/usr/bin/python3

import cgitb
import urllib.parse
import sys, os

cgitb.enable()

# Print necessary headers.
print("Content-Type: text/html")
print()

query = os.environ.get('QUERY_STRING')
query = urllib.parse.unquote(query, errors="surrogateescape")
query_components = dict(qc.split("=") for qc in query.split("&"))
for k,v in query_components.items():
    print(k)

Когда я печатаю ключи, я получаю порядок: cab

Можно ли извлечь аргументы строки запроса по порядку?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Попробуйте это:

from collections import OrderedDict
query_components = OrderedDict(qc.split("=") for qc in query.split("&"))
for k,v in query_components.items():
    if '?' in k:
        print(k.split('?')[1],v)
    else:
        print(k,v)
0 голосов
/ 18 февраля 2019

вы можете использовать OrderedDict вместо dict при определении query_component

OrderedDict - это диктовка, которая запоминает порядок, в котором ключи были впервые вставлены.

...