从请求获取的python字典(json)读取时,Pyspark数据帧损坏记录,编码问题
我正在使用请求库进行RESTAPI调用从请求获取的python字典(json)读取时,Pyspark数据帧损坏记录,编码问题,python,apache-spark,encoding,pyspark,python-requests,Python,Apache Spark,Encoding,Pyspark,Python Requests,我正在使用请求库进行RESTAPI调用 response=requests.get(“https://urltomaketheapicall,标头={'authorization':'bearer{0}'。格式(“7777”)},超时=5) 当我执行response.json() 我得到一个带有这些值的键 {'devices':'..iPhone\xa05S,iPhone\xa06,iPhone\xa06\xa0Plus,iPhone\xa06S'} 当我执行打印(response.encodi
response=requests.get(“https://urltomaketheapicall,标头={'authorization':'bearer{0}'。格式(“7777”)},超时=5)
当我执行response.json()
我得到一个带有这些值的键
{'devices':'..iPhone\xa05S,iPhone\xa06,iPhone\xa06\xa0Plus,iPhone\xa06S'}
当我执行打印(response.encoding)
时,我得到None
当我打印(键入(数据[设备])时,我得到了
如果我打印(数据[设备])我得到的是没有特殊字符的iphone5s、iphone6、iphone6plus、iphone6s
现在如果你愿意
new_dict={}
new_val = data[devices]
new_dict["devices"] = new_val
print(new_dict["devices"])
我也会在新字典中找到特殊字符
有什么想法吗
我想去掉特殊字符,因为我需要读取这些json并将其放入pyspark数据帧中,然后用这些字符获得一个
我想避免像
这样的解决方案。替换(\\xa0),”)
A0
是一个不间断的空间。它只是字符串的一部分。它只是这样打印,因为您正在转储整个dict的repr。如果您打印单个字符串,它将只打印为正确的无中断空格:
>>> print({'a': '\xa0'})
{'a': '\xa0'}
>>> print('\xa0')
>>>
检查我的编辑,我不能把特殊字符放在pyspark数据框架中,然后集中另一个问题。我不知道pyspark,也不知道你是否只是做错了,或者它是否就是不能处理无中断空间。
>>> print({'a': '\xa0'})
{'a': '\xa0'}
>>> print('\xa0')
>>>