Python 如何将此json格式转换为可用于读取的正确格式

Python 如何将此json格式转换为可用于读取的正确格式,python,json,pandas,Python,Json,Pandas,这是第一次使用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'b

这是第一次使用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格式。这是一份字典目录。您可以使用从文件中获取实际列表并将其传递给构造函数:

from ast import literal_eval
import pandas as pd

with open('./access.log2.json') as f:
    data = literal_eval(f.read())

df = pd.DataFrame(data)
print df
您提供的示例数据的输出:

  Domain     IP   Time
0  bbbb1  aaaa1  cccc1
1  bbbb2  aaaa2  cccc2
2  bbbb3  aaaa3  cccc3
3  bbbb4  aaaa4  cccc4

这不是有效的json,这就是为什么
read\u json
不会解析它的原因

{u'IP': u'aaaa1', u'Domain': u'bbbb1', u'Time': u'cccc1', ..... },
应该是

{"IP": "aaaa1", "Domain": "bbbb1", "Time": "cccc1", ..... },
您可以使用正则表达式粉碎此文件(整个文件),以查找以下内容,例如:

In [11]: line
Out[11]: "{u'IP': u'aaaa1', u'Domain': u'bbbb1', u'Time': u'cccc1'},"

In [12]: re.sub("(?<=[\{ ,])u'|'(?=[:,\}])", '"', line)
Out[12]: '{"IP": "aaaa1", "Domain": "bbbb1", "Time": "cccc1"},'
如果有人创建了这个“json”,那就抱怨吧!它不是json。

您也可以使用

pd.read_json("{json_file_name}", orient='records')

假设JSON数据是问题中所示的列表格式

谢谢你的回答!我试着这样做,它会返回消息“killed”。如果我有很多数据,还有其他方法来完成这项工作吗?这不是一个有效的json文件(字符串应该用双引号括起来,而不是用u开头)。你正在生成这个“json”文件吗?对于@Andy Hayden,是的,我通过某人的例子生成了这个文件。(现在我知道这是错误的)你能教我如何使用pandas readjson()格式吗?我试过这个[{“IP”:“aaaa”,“Domain”:“bbb”…},{…}
pd.read_json("{json_file_name}", orient='records')