0
Python初学者在这里;Python json编码API的字典值
我有一个来自Excel的CSV文件。我想将条目解析为JSON字符串,以便与内部应用程序的API一起使用。
该脚本使用两个For循环,一个用于从CSV中读取条目并将它们添加到字典中,第二个用字典条目将数据替换为正确格式化为API请求的模板字符串,方法是转换为JSON字符串。
这是填充字典条目的一个例子 - 格式对应于API规范;
{'description': 'Mrs Davies 7M3/It', 'resourceId': '16', 'userId': 26, 'accessories': [], 'startReminder': '', 'recurrenceRule': {'monthlyType': 'null', 'interval': 2, 'type': 'weekly', 'weekdays': [1], 'repeatTerminationDate': '2016-05-29T08:50:00'}, 'title': 'Mrs Davies 7M3/It', 'resourceID': '16', 'endDateTime': '2016\xad02\xad22T10:50:00', 'participants': [], 'customAttributes': [], 'endReminder': '', 'startDateTime': '2016\xad02\xad22T09:50:00', 'resources': ['16'], 'invitees': []}
正如你所看到的,startDataTime和endDateTime有一个连字符符号的十六进制值。
'endDateTime': '2016\xad02\xad22T10:50:00'
如果我将此值作为变量(tempData)传递,如下所示;
res_data = json.dumps(tempData)
我得到错误;
Traceback (most recent call last):
File "api.py", line 70, in <module>
res_data = json.dumps(tempData)
File "/usr/lib/python2.7/json/__init__.py", line 243, in dumps
return _default_encoder.encode(obj)
File "/usr/lib/python2.7/json/encoder.py", line 207, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python2.7/json/encoder.py", line 270, in iterencode
return _iterencode(o, 0)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xad in position 4: invalid start byte
脚本一直在努力,直到现在没有问题。我试图重新编码数据,因为它正在通过json.dumps进行解析,但似乎没有工作。
有没有办法将数据从字典内编码到utf8中?
在此先感谢。
谢谢,有趣的是我之前有过但没有做任何事情。我已经添加了它,现在JSON字符串正在创建,但我有一个额外的错误,这可能是我的数据。 –