将python中的unicode字符串或列表保存为utf-8 json

时间:2016-03-29 11:37:57

标签: python json encoding

我的列表看起来像这样:

  [{'city': u'\u0410\u0431\u0430\u043a\u0430\u043d', 
    'language': {u'\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439': 111,
     u'\u0418\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0438\u0439': 222, 
    u'\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439': 333}}]

我想用utf-8西里尔字母将其保存为json文件。 理想情况下,它应该看起来像这样

  [{'city': Абакан', 
    'language': {'Английский': 111,
     'Испанский': 222, 
    'Итальянский': 333}}]

我试过了:

 #make custom json from csv
        ur=[{"city":i,
          "language":{l:n
              for l,n in zip(g['language'], g['items'])}}
           for i,g in df.groupby('city')]

 #convert to utf-8

        ur2=str(ur)
        ur2.encode('utf-8')

我也尝试过:

json.dumps(ur2, ensure_ascii=False).encode('utf8')

但它不起作用。我有:

convert_json=json.dumps(ur2, ensure_ascii=False).encode('utf8')
print(convert_json)
"[{'city': u'\\u0410\\u0431\\u0430\\u043a\\u0430\\u043d', 'language': {u'\\u0410\\u043d\\u0433\\u043b\\u0438\\u0439\\u0441\\u043a\\u0438\\u0439': 111, u'\\u0418\\u0442\\u0430\\u043b\\u044c\\u044f\\u043d\\u0441\\u043a\\u0438\\u0439': 222, u'\\u0418\\u0441\\u043f\\u0430\\u043d\\u0441\\u043a\\u0438\\u0439': 333}}]"

0 个答案:

没有答案