python – 如何将这个json格式转换为可以使用的正确格式pandas read_json()
发布时间:2020-05-27 20:06:07 所属栏目:Python 来源:互联网
导读:这是第一次使用stackoverflow来提问.我的英语很差,所以如果我不经意地用言语表达你的意思,请不要介意. 我有一个json文件(access.json),格式如下: [{uIP: uaaaa1, uDomain: ubbbb1, uTime: ucccc1, ..... },{uIP: uaaaa2, uDomain: ubbbb2, uTim
|
这是第一次使用stackoverflow来提问.我的英语很差,所以如果我不经意地用言语表达你的意思,请不要介意. 我有一个json文件(access.json),格式如下: [
{u'IP': u'aaaa1',u'Domain': u'bbbb1',u'Time': u'cccc1',..... },{u'IP': u'aaaa2',u'Domain': u'bbbb2',u'Time': u'cccc2',{u'IP': u'aaaa3',u'Domain': u'bbbb3',u'Time': u'cccc3',{u'IP': u'aaaa4',u'Domain': u'bbbb4',u'Time': u'cccc4',{ ....... },{ ....... }
]
我用的时候: ipython
import pasdas as pd
data = pd.read_json('./access.json')
它返回: ValueError: Expected object or value 这就是我想要的结果: [out]
IP Domain Time ...
0 aaaa1 bbbb1 cccc1 ...
1 aaaa2 bbbb2 cccc2 ...
2 aaaa3 bbbb3 cccc3 ...
3 aaaa4 bbbb4 cccc4 ...
...and so on
我该怎样做才能实现这个目标?谢谢你的答案! 解决方法这是无效的json,这就是read_json不会解析它的原因.{u'IP': u'aaaa1',
应该 {"IP": "aaaa1","Domain": "bbbb1","Time": "cccc1",
您可以使用正则表达式粉碎此(整个文件)以查找这些内容,例如: In [11]: line
Out[11]: "{u'IP': u'aaaa1',u'Time': u'cccc1'},"
In [12]: re.sub("(?<=[{,])u'|'(?=[:,}])",'"',line)
Out[12]: '{"IP": "aaaa1","Time": "cccc1"},'
注意:这会被某些字符串绊倒,因此请谨慎使用. 一个更好的“解决方案”是确保你首先拥有有效的json ……看起来这来自python的str / unicode / repr而不是json.dumps. 注意:json.dumps生成有效的json,因此可以通过read_json读取. In [21]: repr({u'IP': u'aaa'})
Out[21]: "{u'IP': u'aaa'}"
In [22]: json.dumps({u'IP': u'aaa'})
Out[22]: '{"IP": "aaa"}'
如果有人创造了这个“json”,那就抱怨!这不是json. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
