导入json文件报错,TypeError expected string or buffer

原因:用字符串赋值后,python会把双引号转换为单引号

import json

data = [{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]
print(type(data),data)

执行结果:

<class ‘list‘> [{‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘d‘: 4, ‘e‘: 5}]

但是了,json是不支持单引号的。可以用下面的方法转换

json_string=json.dumps(s)

python_obj=json.loads(json_string)

实例:

import json

data = [{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]
json_string = json.dumps(data) #dumps序列化为str,所以保证了双引号没有变为单引号
python_obj=json.loads(json_string) #oads反序列化,所以与原data相同
print(type(json_string),json_string)
print(type(python_obj),python_obj)

执行结果:

<class ‘str‘> [{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]
<class ‘list‘> [{‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘d‘: 4, ‘e‘: 5}]

原文地址:https://www.cnblogs.com/pinpin/p/10619471.html

时间: 2024-10-06 21:06:25

导入json文件报错,TypeError expected string or buffer的相关文章

关于Python json解析过程遇到的TypeError: expected string or buffer

关于Python json解析过程遇到的问题:(爬取天气json数据所遇到的问题http://tianqi.2345.com/) part.1 url--http://tianqi.2345.com/t/wea_history/js/201708/60061_201708.js 返回的数据如下: 这就尴尬了,直接json.loads是返回错误的. 对比了其他网页返回的--http://www.toutiao.com/search_content/?offset=0&format=json&

Semi-colon expected (eclipse 引入 json文件报错)

最近做的项目用到的前端框架有一个json文件夹,里面全是json文件,所以导入Eclipse的时候会在整个项目上都是红叉,但是其实不影响项目运行的,之前忙着码代码也没时间管他,这个红叉存留了一个月!今天完成了一个功能越看这个红叉越不顺眼,于是开始折腾了. ①错误原因: 原来是因为Eclipse会自动帮我们校验js文件,发现格式不支持,自然就报错了.   ②解决方案: window--preference--搜索validation--选择级别比较高的这个(如下)--将javaScript Val

myeclipse_导入js文件报错

myeclipse导入外部的js文件时.myeclipse自动报错.外部导入的官方js包应该是没有错的. 可以选中报错的js文件-->右键-->myeclipse-->exclude from  validation. 还报错的话就继续操作不过最后一步选择Run Validation eclipse下面Project Properties > JavaScript > Include Path > Source > 选中Exclude > 点击edit按钮

Oracle数据库导入dmp文件报错处理方法

在向oracle数据库执行导入命令的时候报错,错误如下,大概意思是TNS中找不到服务名 下面说一下解决步骤 1:进入oracle用户,使用cat查看.bash_profile文件,找到ORACLE_HOME变量 2:进入ORACLE_HOME/network/admin目录 3:查看tnsnames.ora监听文件,找到对应的监听名称,比如下面的导入语句,即可执行成功 [[email protected] admin]$ impdp efoas/[email protected]ENFOCOG

jmeter导入jmx文件报错:missing class com.thoughtworks.xstream.converters.ConversionException

有的时候我们会参考别人的jmx文件,但是在导入的时候会报错如下图: 实际上是告诉我们缺少jar包所引起的,下载对应jar包放到jmeter安装目录对应的lib/ext下就可以了,如下图: jmeter插件下载地址:https://jmeter-plugins.org/downloads/all/ jmeter-plugins-manager.jar是jmeter的一个插件管理工具包,下载完成之后,将下载的jmeter-plugins-manager-0.11.jar文件放置到jmeter目录下\

Eclipse的JSON文件报错解决

有时候我们后端老哥不想写HTML,偷懒去下载个前端页面,结果里面的JSON文件老报错 虽然可以正常运行,但红X看起来就是不爽,怎么解决呢 这是因为Eclipse认为JSON文件不需要注释,所以报的编译错误,我们可以通过Eclipse的设置把它的编译检查给关掉 Window → Preferences → Validation(验证) → JSON Validator(JSON 验证器) 把Manual和Build两个复选框的勾都取掉,点击Apply and Close.就ojbk了. 等Ecli

谷歌浏览器下请求json文件报错

请求json文件时,谷歌浏览器下总是报这样第一个错误提示.XMLHttpRequest cannot load file:///C:/Users/Administrator/Desktop/dropload/examples/json/more.json. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extens

Mysql导入大文件报错(MySQL server has gone away(error 2006))

前言 我们在导入mysql数据时候,mysql客户端突然报错:MySQL server has gone away(error 2006) 类似这种情况,处理思路为:调节mysql允许导入包的大小即可. 有两种设置方法: 1.修改mysql的my.inf配置文件(单位为B,此处设置为800M):max_allowed_packet= 2*1024*1024*400 2.登录mysql命令行:set global max_allowed_packet= 2*1024*1024*400 如下图所示

mysql导入sql文件报错“MySQL server has gone away”的解决方法

登陆mysql终端,查看当前配置(默认单位是字节): show VARIABLES like '%max_allowed_packet%'; 在mysql的安装目录下 找到 my.ini文件 加入以下代码: interactive_timeout = 120 wait_timeout = 120 max_allowed_packet = 32M