繁体   English   中英

Python:从JSON到CSV Unicode编码

[英]Python: JSON to CSV Unicode Encoding

我有一个带有Tweets的JSON文件-其中大多数是德语的。 我想将其转换为CSV文件。 我是Python的新手,并已遵循此解决方案 但是编码问题阻碍了我的前进。

这是从JSON文件生成CSV文件的代码:

import csv
import json

x="""[
    {
   "created_at": "Thu, 24 Jan 2013 23:59:58 +0000",
   "id": 294595428815622140,
   "source": "<a href="http://www.tweetdeck.com">TweetDeck</a>",
   "text": "RT @marthadear: ich heule gerade, aber h\\u00f6rt blo\\u00df nicht auf! #aufschrei",
   "user": {
      "profile_image_url": "http://a0.twimg.com/profile_images/3187103131/33d7b666c757b7c50b01342f05345210_normal.jpeg",
      "screen_name": "KatrinaR47"
   }
    }
]"""


x = json.loads(x)

f = csv.writer(open("test2.csv", "wb+"))

for x in x:
    f.writerow([x["created_at"], 
                x["id"], 
                x["source"], 
                x["text"],
                x["user"]["profile_image_url"],
                x["user"]["screen_name"]])

我收到的错误消息如下

UnicodeEncodeError                        Traceback (most recent call last)
<ipython-input-32-0096601ea1bd> in <module>()
     26                 x["text"],
     27                 x["user"]["profile_image_url"],
---> 28                 x["user"]["screen_name"]])
     29 

UnicodeEncodeError: 'ascii' codec can't encode character u'\xf6' in position 40: ordinal not in range(128)

因此,显然解码不起作用。 我试图找到许多不同的解决方案,但到目前为止,我还无法成功应用一个解决方案。 你能帮我吗?

在编写x["text"]之前尝试对其进行编码(第26行)
像这样:

f.writerow([x["created_at"], 
            x["id"], 
            x["source"], 
            x["text"].encode("utf-8"),
            x["user"]["profile_image_url"],
            x["user"]["screen_name"]])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM