Pythonjson坑(持续更新)
Posted littlemichelle
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pythonjson坑(持续更新)相关的知识,希望对你有一定的参考价值。
python内置的json
json.dumps() #将Python中的对象转换为JSON中的字符串对象
json.loads() #将JSON中的字符串对象转换为Python中的对象
这个问题是由于json.dumps()函数引起的。dumps是将dict数据转化为str数据,但是dict数据中包含byte、int、float、datetime等等的时候,数据所以会报错。
可能会遇到TypeError: Object of type xxx is not JSON serializable错误,也就是无法序列化某些对象格式。
注意:json默认支持的类型只有下面几种,其他的类型,比如自定义的类或者date类型,都需要自定义jsonEncoder。
Supports the following objects and types by default:
+-------------------+---------------+
| Python | JSON |
+===================+===============+
| dict | object |
+-------------------+---------------+
| list, tuple | array |
+-------------------+---------------+
| str | string |
+-------------------+---------------+
| int, float | number |
+-------------------+---------------+
| True | true |
+-------------------+---------------+
| False | false |
+-------------------+---------------+
| None | null |
+-------------------+---------------+
TypeError: Object of type ValueError is not JSON serializable
json.dumps()
numpy array 不能用json包起来当做出参。
numpy array 不能用json包起来。
TypeError: Object of type 'ndarray' is not JSON serializable
图片img(RGB)也不能用json包起来
from PIL import Image
图片img(RGB)也不能用json包起来。
TypeError: Object of type 'Image' is not JSON serializable
python使用raise ValueError('修改信息失败')抛出异常,使用如下捕获异常:
except ValueError as e:
traceback.print_exc()
return
'msg': e, #错误写法
'code': 400,
except ValueError as e:
traceback.print_exc()
return
'msg': str(e), #正确写法
'code': 400,
Xamarin.Forms踩坑集锦(持续更新)
1、ImageButton控件
问题:ImageButton在切换图片的时候,图片大小会改变。
Github Issue:ImageButton changes image size · Issue #4510 · xamarin/Xamarin.Forms
解决:使用Image控件,将Image.GestureRecognizers设置为TapGestureRecognizer,支持Event和Command。
<Image.GestureRecognizers> <TapGestureRecognizer NumberOfTapsRequired="1" Command="{Binding SwitchPlayPauseCommand}"
CommandParameter="{Binding IsPlaying}"/> </Image.GestureRecognizers>
2、DelegateCommand类
问题:Prism框架,DelegateCommand<T>,T为值类型时出错。
解决:参数类型T无法使用值类型,可以使用值类型的可空类型如int?。
3、mipmap文件夹
问题:新建项目使用Prism模板,在Android项目中的mipmap文件夹内的图片,Forms项目无法使用。
解决:手动建立drawable文件夹(不支持层级子文件夹),存放Forms使用的图片。
mipmap文件夹中的图片,可以在Android项目中使用。
问题:使用ISimpleAudioPlayer.Load(string fileName)加载音频文件后,获取到的ISimpleAudioPlayer.Duration不正确。
解决:使用ISimpleAudioPlayer.Load(Stream audioStream)。
5、MasterDetailPage
问题:MasterDetailPage.Master设置为ContentPage,设置ContentPage.BackgroundImage无效。
解决:ContentPage.BackgroundColor="Transparent"。
6、ListView
问题:ListView的行高度,不随ViewCell的高度而改变。
解决:ListView.HasUnevenRows="True"。
以上是关于Pythonjson坑(持续更新)的主要内容,如果未能解决你的问题,请参考以下文章