URLEncode的名单
问题描述:
我有数据帧,我已经将它改成字典列表:URLEncode的名单
df = data.to_dict(orient = "records")
输出:
[{'MAIN KITCHEN': 9.6, 'Time': ' 05/01/2017 00:05:00'},
{'MAIN KITCHEN': 9.6, 'Time': ' 05/01/2017 00:10:00'},
{'MAIN KITCHEN': 9.6, 'Time': ' 05/01/2017 00:15:00'},
{'MAIN KITCHEN': 11.2, 'Time': ' 05/01/2017 00:20:00'},
{'MAIN KITCHEN': 11.2, 'Time': ' 05/01/2017 00:25:00'},
{'MAIN KITCHEN': 12.8, 'Time': ' 05/01/2017 00:30:00'},
{'MAIN KITCHEN': 9.6, 'Time': ' 05/01/2017 00:35:00'},
{'MAIN KITCHEN': 11.2, 'Time': ' 05/01/2017 00:40:00'},
{'MAIN KITCHEN': 12.8, 'Time': ' 05/01/2017 00:45:00'}]
P.S:我想只有这样我的数据。
我想将此输出编码为url
或查询字符串。
我想这:
param = urllib.urlencode(df)
但我得到一个错误:
TypeError: not a valid non-string sequence or mapping object
谁能告诉我正确的方式做到这一点?
答
您需要遍历字典列表,并在其中的每一个上应用urllib.urlencode
。
In [46]: [urllib.urlencode(d) for d in df.to_dict(orient='records')]
Out[46]:
['Time=+05%2F01%2F2017+00%3A05%3A00&MAIN+KITCHEN=9.6',
'Time=+05%2F01%2F2017+00%3A10%3A00&MAIN+KITCHEN=9.6',
'Time=+05%2F01%2F2017+00%3A15%3A00&MAIN+KITCHEN=9.6',
'Time=+05%2F01%2F2017+00%3A20%3A00&MAIN+KITCHEN=11.2',
'Time=+05%2F01%2F2017+00%3A25%3A00&MAIN+KITCHEN=11.2',
'Time=+05%2F01%2F2017+00%3A30%3A00&MAIN+KITCHEN=12.8',
'Time=+05%2F01%2F2017+00%3A35%3A00&MAIN+KITCHEN=9.6',
'Time=+05%2F01%2F2017+00%3A40%3A00&MAIN+KITCHEN=11.2',
'Time=+05%2F01%2F2017+00%3A45%3A00&MAIN+KITCHEN=12.8']
您还可以在转换之前,这样做是为了词典:
In [54]: df.apply(lambda x: urllib.urlencode(dict(x)), axis=1)
Out[54]:
0 Time=+05%2F01%2F2017+00%3A05%3A00&MAIN+KITCHEN...
1 Time=+05%2F01%2F2017+00%3A10%3A00&MAIN+KITCHEN...
2 Time=+05%2F01%2F2017+00%3A15%3A00&MAIN+KITCHEN...
3 Time=+05%2F01%2F2017+00%3A20%3A00&MAIN+KITCHEN...
4 Time=+05%2F01%2F2017+00%3A25%3A00&MAIN+KITCHEN...
5 Time=+05%2F01%2F2017+00%3A30%3A00&MAIN+KITCHEN...
6 Time=+05%2F01%2F2017+00%3A35%3A00&MAIN+KITCHEN...
7 Time=+05%2F01%2F2017+00%3A40%3A00&MAIN+KITCHEN...
8 Time=+05%2F01%2F2017+00%3A45%3A00&MAIN+KITCHEN...
dtype: object
In [55]: df.apply(lambda x: urllib.urlencode(dict(x)), axis=1).tolist()
Out[55]:
['Time=+05%2F01%2F2017+00%3A05%3A00&MAIN+KITCHEN=9.6',
'Time=+05%2F01%2F2017+00%3A10%3A00&MAIN+KITCHEN=9.6',
'Time=+05%2F01%2F2017+00%3A15%3A00&MAIN+KITCHEN=9.6',
'Time=+05%2F01%2F2017+00%3A20%3A00&MAIN+KITCHEN=11.2',
'Time=+05%2F01%2F2017+00%3A25%3A00&MAIN+KITCHEN=11.2',
'Time=+05%2F01%2F2017+00%3A30%3A00&MAIN+KITCHEN=12.8',
'Time=+05%2F01%2F2017+00%3A35%3A00&MAIN+KITCHEN=9.6',
'Time=+05%2F01%2F2017+00%3A40%3A00&MAIN+KITCHEN=11.2',
'Time=+05%2F01%2F2017+00%3A45%3A00&MAIN+KITCHEN=12.8']
什么是预期的输出? – MedAli
@MedAli,%5B%7B%27MAIN + KITCHEN%27%3A + 9.6%2C +%27%27%3A +%27 + 05%2F01%2F2017 + 00%3A05%3A00%27%7D%2C +%0D%0A + %7B%27MAIN +厨房%27%3A + 9.6%2C +%27时间%27%3A +%27 + 05%2F01%2F2017 – Dheeraj
检查我的答案,并让我知道你是否有任何问题? – MedAli