我是python的新手,现在我需要使用它来处理txt文件中的一些数据。
以下是一个示例数据,其中每个'&'
之后是一个新索引:
uid=aaa&sid=bbb&bid=ccc&cid=ddd&pid=eee&ver=fff...
uid=aaa2&sid=bbb2&bid=ccc2&cid=ddd2&pid=eee2&ver=fff2...
...
最终结果是将columns=['uid', 'sid', 'bid', 'cid', 'pid', 'ver'...]
的DataFrame(带有pandas)和uid
的内容作为索引。
我的想法是:从字符串中删除aaa
,bbb
和ccc
等,然后将它们插入到数据框中。
我试过了:
st1 = gif?uid=aaa&sid=bbb&bid=ccc&cid=ddd&pid=eee&ver=fff......HTTPasfawfaw
(st1 is the original string)
st2 = st1.split("gif?")[1].split("HTTP")[0]
st3 = st2.split('&')
我的问题是:
=
之后取出字符串并将它们放入Dataframe?提前感谢您的帮助!
答案 0 :(得分:6)
这是一个URL查询字符串。您应该使用标准库中的urllib
模块来解析它。
from urllib.parse import parse_qs # python3
from urlparse import parse_qs # python2
parse_qs('uid=aaa2&sid=bbb2&bid=ccc2&cid=ddd2&pid=eee2&ver=fff2')
输出:
{'bid': ['ccc2'],
'cid': ['ddd2'],
'pid': ['eee2'],
'sid': ['bbb2'],
'uid': ['aaa2'],
'ver': ['fff2']}
答案 1 :(得分:0)
您可以使用$user->phones()->sync([
[
'id' => 21,
'label' => "primary",
'number' => "5555551212"
],
[
'id' => null,
'label' => "mobile",
'number' => "1112223333"
]
]);
创建所有列和值的regex
,然后使用它来创建list
,例如:
dataframe
输出:
import re
st = 'uid=aaa&sid=bbb&bid=ccc&cid=ddd&pid=eee&ver=fffuid=aaa2&sid=bbb2&bid=ccc2&cid=ddd2&pid=eee2&ver=fff2'
myData = re.findall(r'(\wid)=(\w+)', st)
prit myData
答案 2 :(得分:0)
txt = open('test.txt').read()
pd.DataFrame(
[dict([kv.split('=') for kv in l.split('&')]) for l in txt.split('\n')]
)
bid cid pid sid uid ver
0 ccc ddd eee bbb aaa fff
1 ccc2 ddd2 eee2 bbb2 aaa2 fff2