Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用urllib更改时间参数_Python_Python 3.x_Url_Urllib - Fatal编程技术网

Python 使用urllib更改时间参数

Python 使用urllib更改时间参数,python,python-3.x,url,urllib,Python,Python 3.x,Url,Urllib,我需要更改to和from参数,但urllib收集的所有内容都不正确。 在字典中,参数会正确更改,但随后会收集旧的url import urllib.parse url = 'http://192.168.150.138:3000/render/d-solo/htddR-gGz/jmeter-dashboard?orgId=1&from=1589972154000&to=1589972739000&var-data_source=InfluxDB-Jmeter&va

我需要更改to和from参数,但urllib收集的所有内容都不正确。 在字典中,参数会正确更改,但随后会收集旧的url

import urllib.parse
url = 'http://192.168.150.138:3000/render/d-solo/htddR-gGz/jmeter-dashboard?orgId=1&from=1589972154000&to=1589972739000&var-data_source=InfluxDB-Jmeter&var-application=application%20name&var-transaction=HTTP%20Request%20-%20homepage&var-measurement_name=jmeter&var-send_interval=5&panelId=23&width=1600&height=500&tz=Europe%2FMoscow'

urlStr: urllib.parse.ParseResult = urllib.parse.urlparse(url)
urlDict = urllib.parse.parse_qs(urlStr.query)
print(urlDict)
urlDict['from'] = ['1555926954000']
urlDict['to'] = ['1555938339000']
print(urlDict)
urlStr._replace(query=urllib.parse.urlencode(urlDict))
print(urlStr.geturl())

[Output]:
{'orgId': ['1'], 'from': ['1589972154000'], 'to': ['1589972739000'], 'var-data_source': ['InfluxDB-Jmeter'], 'var-application': ['application name'], 'var-transaction': ['HTTP Request - homepage'], 'var-measurement_name': ['jmeter'], 'var-send_interval': ['5'], 'panelId': ['23'], 'width': ['1600'], 'height': ['500'], 'tz': ['Europe/Moscow']}
{'orgId': ['1'], 'from': ['1555926954000'], 'to': ['1555938339000'], 'var-data_source': ['InfluxDB-Jmeter'], 'var-application': ['application name'], 'var-transaction': ['HTTP Request - homepage'], 'var-measurement_name': ['jmeter'], 'var-send_interval': ['5'], 'panelId': ['23'], 'width': ['1600'], 'height': ['500'], 'tz': ['Europe/Moscow']}
http://192.168.150.138:3000/render/d-solo/htddR-gGz/jmeter-dashboard?orgId=1&from=1589972154000&to=1589972739000&var-data_source=InfluxDB-Jmeter&var-application=application%20name&var-transaction=HTTP%20Request%20-%20homepage&var-measurement_name=jmeter&var-send_interval=5&panelId=23&width=1600&height=500&tz=Europe%2FMoscow


我认为(u replace)不是就地更换。尝试将返回值赋回urlStr

urlStr=urlStr._replace(query=urllib.parse.urlencode(urlDict, doseq=True))

它可以工作,但现在它在values:jmeter dashboard?orgId=['1']&from=['1555926954000']&to=['1555938339000']
doseq=True
中创建了错误的链接,urlencode似乎可以修复它。更新了答案。