【问题标题】:Invalid Control Character Error in Python 2.7.9Python 2.7.9 中的无效控制字符错误
【发布时间】:2015-04-22 17:52:28
【问题描述】:

我在运行以下 python 脚本时收到以下错误。

ValueError:无效控制字符位于:第 7591 行第 220620 列(字符 385678)

我对此进行了一些研究,似乎可以通过在 json.dumps() 中传递 'strict=false' 来解决它,但我仍然收到相同的错误。这是我尝试查询的唯一返回此错误的 REST 服务。

import arcgis
import json

from arcgis import ArcGIS
service = ArcGIS("http://mapping.dekalbcountyga.gov/arcgis/rest/services/LandUse/MapServer")
query = service.get(0, count_only=False)
json_query = json.dumps(query, strict=False)
f = open("dekalb_parcels.geojson", "w")
f.write(json_query)
f.close()

我们将不胜感激任何可以提供的帮助。谢谢。

更新 - 这是我收到的完整错误。

Traceback (most recent call last):
  File "G:\Python\Scripts\dekalb_parcel_query.py", line 8, in <module>
    query = service.get(0, count_only=False)
  File "C:\Python27\lib\site-packages\arcgis\arcgis.py", line 146, in get
    jsobj = self.get_json(layer, where, fields, count_only, srid)
  File "C:\Python27\lib\site-packages\arcgis\arcgis.py", line 90, in get_json
    return response.json()
  File "C:\Python27\lib\site-packages\requests\models.py", line 802, in json
    return json.loads(self.text, **kwargs)
  File "C:\Python27\lib\json\__init__.py", line 338, in loads
    return _default_decoder.decode(s)
  File "C:\Python27\lib\json\decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Invalid control character at: line 7591 column 220620 (char 385678)

【问题讨论】:

  • 当您要转储的字符串中有\r\n 之类的转义序列时,通常会发生这种情况。
  • 克劳斯,我相信你是对的。据我所知,传递 'strict=false' 应该忽略那些转义序列。但是,就我而言,它似乎无法纠正错误。除非我用错了。
  • strict 参数在解析 JSON 时可用,在序列化时不可用。
  • 我明白了,那么我该如何避免这个错误呢?我也尝试过像这样更改代码,'json_query = json.dumps(query.replace('\r\n', '\\r\\n'))' 以便手动转义它们。请原谅我的无知,因为我是一个相当新手的程序员。

标签: python json python-2.7 gis arcgis


【解决方案1】:

我可以通过在return response.json() 中传递strict=False 来解决此问题

【讨论】:

    猜你喜欢
    • 2014-04-19
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多