python - 使用 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&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
解决方案
我认为 _replace 不会进行就地替换。尝试将返回的值分配回 urlStr
urlStr=urlStr._replace(query=urllib.parse.urlencode(urlDict, doseq=True))
推荐阅读
- npm - 如何解决 npm ERR!401 Unauthorized - GET https://npm.pkg.github.com/***** - GitHub Packages 服务无法验证您的请求
- google-drive-api - Google 云端硬盘中的行为不一致
- typescript - 如何限制返回类型
- python - 有没有办法用 matplotlib 绘制矩形和/或正方形?
- java - 确保此方法调用中使用的正则表达式不会导致拒绝服务 - 正则表达式
- javascript - 无法在使用 chrome.identity.launchWebAuthFlow() 打开的窗口中使用 prompt() 或 alert()
- python - 梯度下降得到不同的最终参数,用于矩阵形式的线性回归的不同初始参数
- http - HTTP 重定向是否健壮?
- ios - 如何在 ios 中制作 react-native 全屏模式
- javascript - Discord Bot 不可用 公会麻烦