You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django序列化GeoJSON报错:JSONEncoder.__init__()收到意外参数'fields'

问题原因及解决方法

你遇到的错误是因为**djgeojson序列化器不支持Django原生serialize函数的fields参数**,它使用properties参数来指定需要包含的非几何属性字段。

解决步骤

直接将代码中的fields=("province",)替换为properties=("province",)即可:

markers = Agency.objects.all()
geojson_file = serialize("geojson",
                          markers,
                          geometry_field="location",
                          properties=("province",)
               )

补充说明

如果更倾向于直接使用djgeojson的序列化器类,也可以这样写:

from djgeojson.serializers import Serializer

markers = Agency.objects.all()
geojson_file = Serializer().serialize(markers, geometry_field='location', properties=('province',))

本质上是因为djgeojson的序列化实现逻辑与Django原生序列化不同,它将属性字段的配置参数命名为properties,而非Django原生的fields,导致参数传递错误触发了JSONEncoder的初始化异常。

内容的提问来源于stack exchange,提问作者Vahid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 15:45:51