本文介绍了Json转储字典会抛出TypeError:键必须是字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用json.dumps
将以下dict
转换为JSON:
I am attempting to convert the following dict
into JSON using json.dumps
:
{
'post_engaged': 36,
'post_impressions': 491,
'post_story': 23,
'comment_count': 6,
'created_time': '03:02 AM, Sep 30, 2012',
'message': 'Specialities of Shaktis and Pandavas. \n While having power, why there isn\\u2019t',
< built - in function id > : '471662059541196',
'status_type': 'status',
'likes_count': 22
} {
'post_engaged': 24,
'text': '30 Sept 2012 Avyakt Murlli ( Dual Voice )',
'post_story': 8,
'comment_count': 3,
'link': 'http:\\/\\/www.youtube.com\\/watch?v=VGmFj8g7JFA&feature=youtube_gdata_player',
'post_impressions': 307,
'created_time': '03:04 AM, Sep 30, 2012',
'message': 'Not available',
< built - in function id > : '529439300404155',
'status_type': 'video',
'likes_count': 7
} {
'post_engaged': 37,
'post_impressions': 447,
'post_story': 22,
'comment_count': 4,
'created_time': '03:11 AM, Sep 30, 2012',
'message': '30-09-12 \\u092a\\u094d\\u0930\\u093e\\u0924:\\u092e\\u0941\\u0930\\u0932\\u0940 \\u0913\\u0',
< built - in function id > : '471643246209744',
'status_type': 'status',
'likes_count': 20
} {
'post_engaged': 36,
'post_impressions': 423,
'post_story': 22,
'comment_count': 0,
'created_time': '03:04 AM, Sep 29, 2012',
'message': 'Essence: Sweet children, whenever you have time, earn the true income. Staying i',
< built - in function id > : '471274672913268',
'status_type': 'status',
'likes_count': 20
} {
'post_engaged': 16,
'text': 'Essence Of Murli 29-09-2012',
'post_story': 5,
'comment_count': 2,
'link': 'http:\\/\\/www.youtube.com\\/watch?v=i6OgmbRsJpg&feature=youtube_gdata_player',
'post_impressions': 291,
'created_time': '03:04 AM, Sep 29, 2012',
'message': 'Not available',
< built - in function id > : '213046588825668',
'status_type': 'video',
'likes_count': 5
}
但是它导致我进入
TypeError : keys must be a string
该错误很可能是由于字典包含keys
之类的
The error is likely due to the dict containing, keys
like:
<built-in function id>: '213046588825668'
有人可以指导我,如何从字典中删除这些元素?
Can someone please guide me, with how should I remove these elements from the dict?
推荐答案
您可以尝试像这样清理它:
You could try to clean it up like this:
for key in mydict.keys():
if type(key) is not str:
try:
mydict[str(key)] = mydict[key]
except:
try:
mydict[repr(key)] = mydict[key]
except:
pass
del mydict[key]
这将尝试将非字符串的任何键转换为字符串.任何无法转换为字符串或不能表示为字符串的键都将被删除.
This will try to convert any key that is not a string into a string. Any key that could not be converted into a string or represented as a string will be deleted.
这篇关于Json转储字典会抛出TypeError:键必须是字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!