这里是Python初学者
我有一个来自Excel的CSV文件。我想将条目解析为JSON字符串,以便与内部应用程序的API一起使用。在
该脚本使用两个For循环,一个从CSV读取条目并将它们添加到字典中,第二个循环将字典条目中的数据替换为模板字符串,模板字符串通过转换为JSON字符串来正确格式化API请求。在
这是一个填充字典条目的示例-格式与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有一个十六进制值作为连字符符号。在
^{pr2}$如果我将这个值作为变量(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?在
提前谢谢。在
看起来您从编码为“Cp1252”的源获取数据 你可以把字典当
如果您对编码类型不太确定,并且已经有了这样的字符串的字典,那么您可以要求json来处理它-
^{pr2}$你的代码应该与下面的更改一起工作
相关问题 更多 >
编程相关推荐