2015-04-22 72 views
1

運行下面的python腳本時,我收到以下錯誤消息。Python 2.7.9中的無效控制字符錯誤

ValueError異常:在無效的控制字符:行7591列220620(炭385678)

我做了一些這方面的研究,似乎它會通過傳遞來解決「嚴格=虛假」 json.dumps內() ,但我仍然收到相同的錯誤。這是我嘗試查詢的唯一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) 
+0

來解決這個問題,當你有像逃要轉儲字符串中的'\ r'或'\ N'序列這通常發生。 –

+0

克勞斯,我相信你是對的。據我所知,傳遞'strict = false'應該忽略那些轉義序列。但是,就我而言,似乎並沒有糾正錯誤。除非我錯誤地使用它。 –

+0

「strict」參數在解析JSON時可用,而不是在序列化時可用。 –

回答

1

我能夠通過傳遞strict=Falsereturn response.json()