Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ValueError:预期对象或值<-&燃气轮机;Can';t将json文件加载到dataframe或转换为csv即可_Python_Json_Pandas_Csv - Fatal编程技术网

Python ValueError:预期对象或值<-&燃气轮机;Can';t将json文件加载到dataframe或转换为csv即可

Python ValueError:预期对象或值<-&燃气轮机;Can';t将json文件加载到dataframe或转换为csv即可,python,json,pandas,csv,Python,Json,Pandas,Csv,我有一个大约1.5 GB大小的JSON文件,我需要将其用作数据帧,我已经连续10个小时尝试将其作为数据帧加载,并且还讨论了有关StackOverflow的所有可能回答的问题!作为第二种选择,我尝试将其转换为csv,然后将其作为数据帧加载,但这也失败了,在之前回答的问题中,人们只是解释了错误,而没有给出代码,以下是json的外观: {'work': '2505753', 'flags': [], 'unixtime': 1260403200, 'stars': 1.0, 'nhelpful': 0

我有一个大约1.5 GB大小的JSON文件,我需要将其用作数据帧,我已经连续10个小时尝试将其作为数据帧加载,并且还讨论了有关StackOverflow的所有可能回答的问题!作为第二种选择,我尝试将其转换为csv,然后将其作为数据帧加载,但这也失败了,在之前回答的问题中,人们只是解释了错误,而没有给出代码,以下是json的外观:

{'work': '2505753', 'flags': [], 'unixtime': 1260403200, 'stars': 1.0, 'nhelpful': 0, 'time': 'Dec 10, 2009', 'comment': "I really thought that I would like this book. I'm fascinated by this time period, and the plots to assassinate Hitler have always intrigued me. However, this book was so boring that I had to force myself to read it. The author no doubt has a commanding vocabulary, but his writing style and word choices made the book a chore to read. I've read dry textbooks that had more life to them than this novel. ", 'user': 'schatzi'}
{'work': '12458291', 'flags': [], 'unixtime': 1361664000, 'stars': 4.0, 'nhelpful': 0, 'time': 'Feb 24, 2013', 'comment': "After her father's death, Lena discovers that her father had been keeping many secrets from her. Lena is a member of the. Silenti, telepaths who came to our world through a portal. She must learn to navigate through the social, religious, and political pitfalls of her new life. Who can she trust? What will her role be? I enjoyed this story and the world the author created very much. ", 'user': 'aztwinmom'}
我尝试将此代码作为转换为csv的第二个选项,我调试的错误是单引号,但是在这个庞大的数据中用
“\”
替换
“\”
将花费大量时间

尝试使用json 回溯
---------------------------------------------------------------------------
JSONDecodeError回溯(最近一次调用)
在里面
1 f=open('test.json')
---->2 data=json.load(f)
3 f.关闭()
e:\Anaconda3\lib\json\\uuuuu init\uuuuuuuuuuuu.py加载(fp、cls、object\u hook、parse\u float、parse\u int、parse\u常量、object\u pairs\u hook、**kw)
294 cls=cls,object\u hook=object\u hook,
295 parse_float=parse_float,parse_int=parse_int,
-->296 parse_常量=parse_常量,object_pairs_hook=object_pairs_hook,**千瓦)
297
298
e:\Anaconda3\lib\json\\uuuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuy加载(s、编码、cls、对象钩子、解析浮点数、解析整型、解析常量、对象对钩子、**kw)
346 parse_int为无,parse_float为无且
347 parse_常量为None且对象_pairs_hook为None且非kw):
-->348返回默认解码器。解码
349如果cls为无:
350 cls=JSONDecoder
解码中的e:\Anaconda3\lib\json\decoder.py(self,s,\u w)
335
336         """
-->337 obj,end=self.raw\u decode(s,idx=\u w(s,0.end())
338 end=_w(s,end).end()
339如果结束!=(s)
原始解码中的e:\Anaconda3\lib\json\decoder.py(self、s、idx)
351         """
352试试:
-->353 obj,end=自扫描一次(s,idx)
354除了停止迭代作为错误:
355将JSONDecodeError(“预期值”,s,err.value)从None提升
JSONDecodeError:应使用双引号括起属性名称:第1行第2列(字符1)
  • pd.read\u json('test.json')
    结果:
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在里面
---->1 pd.read_json('test.json')
e:\Anaconda3\lib\site packages\pandas\util\\包装中的decorators.py(*args,**kwargs)
212其他:
213 kwargs[新参数名称]=新参数值
-->214返回函数(*args,**kwargs)
215
216回型(F,包装器)
e:\Anaconda3\lib\site packages\pandas\io\json\\u json.py(路径、方向、类型、数据类型、转换轴、转换日期、保留默认日期、numpy、精确浮点、日期单位、编码、行、块大小、压缩)
606返回json_读取器
607
-->608 result=json_reader.read()
609如果应关闭:
610文件路径\或\缓冲区.关闭()
e:\Anaconda3\lib\site packages\pandas\io\json\\u json.py处于读取状态(self)
729 obj=self.\u获取\u对象\u解析器(self.\u合并\u行(data.split(“\n”))
730其他:
-->731 obj=self.\u get\u object\u解析器(self.data)
732自我关闭()
733返回obj
e:\Anaconda3\lib\site packages\pandas\io\json\\u json.py在\u get\u object\u解析器中(self,json)
751 obj=无
752如果类型=“帧”:
-->753 obj=FrameParser(json,**kwargs.parse()
754
755如果类型==“系列”或obj为无:
解析中的e:\Anaconda3\lib\site packages\pandas\io\json\\u json.py(self)
855
856其他:
-->857 self.\u parse\u no\u numpy()
858
859如果self.obj为无:
e:\Anaconda3\lib\site packages\pandas\io\json\\u json.py in\u parse\u no\u numpy(self)
1087如果方向=“列”:
1088 self.obj=数据帧(
->1089次加载(json,precise\u float=self.precise\u float),dtype=None
1090             )
1091 elif orient==“分割”:
ValueError:预期的对象或值
  • 错误非常清楚地表明这些不是JSON格式的,因为您有
    {'work'
    ,JSON将是
    {“work”
    ,单引号与双引号
  • 使用
    .replace(“,”)
    将不起作用,因为
    'comment'
    的值被正确地双引号(
    “…”
    ),因为有些单词带有撇号(例如
    “…父亲的…”
    )。使用replace,将产生类似于
    “…父亲的…”的结果。
  • 您有一个文件,其中有一行
    dicts
  • 需要读入文件,这将把每一行转换为
    str
    类型
  • 使用
    ast.literal\u eval
    将每一行转换回
    dict
    类型
  • 将dict的列表,
    ,读入数据帧
将熊猫作为pd导入
从ast导入文字值
从pathlib导入路径
#读取文件
file=Path('e:/PythonProjects/stack_overflow/test.json')#文件路径
使用file.open('r',encoding='utf-8')作为f:#打开文件
rows=[f.readlines()中的行的literal_eval(row)]#列出将每行转换回dict的理解
#将行转换为数据帧
df=pd.DataFrame(行)
#显示(df)
工作标志unixtime stars非完整时间
import json
import csv
import os

f = open('test.json')
data = json.load(f)
f.close()

f = open('data.json')
csv_file = csv.writer(f)
count=0
for item in data:
    f.writerow(item)
    count+=1
    if(count==10):
        break

f.close()