*朋友们好! 我想将我使用 tweepy 获得的原始 json 推文转换为 csv,并且只有两个字段,"创建位置"和"文本"转换为 ASCII 我遇到错误,即未定义名称错误"data_python"。 我很困惑。 提前谢谢你
这是我的代码
import json
import csv
try:
data_json = open('nawaz.json', mode='r').read()
data_python = json.loads(data_json) // here....
except Exception as e:
print(str(e))
csv_out = open('tweets_out_ASCII.csv', mode='w')
writer = csv.writer(csv_out)
fields = ['created_at', 'text']
writer.writerow(fields)
for line in data_python: // here it gives error
writer.writerow([line.get('created_at'), line.get('text').encode('unicode_escape'))]
csv_out.close()
这是我收到的错误
Traceback (most recent call last):
File "json_to_csv.py", line 25, in <module>
for line in data_python:
NameError: name 'data_python' is not defined
这是我的 JSON 示例
[![json example[![][1]][1]][1]
当它抛出错误时,它会跳过分配给变量,因为data_json
可能不是有效的 json。
考虑一下:
try:
n = int('a')
except ValueError:
pass
n
会是什么?它不能分配给所有内容,因为引发的异常会使其跳过分配。
因此,您可以为其指定默认值:
try:
data_json = open('nawaz.json', mode='r').read()
data_python = json.loads(data_json)
except Exception:
data_python = [] # Some default value
或者,您可以不捕获异常并让它失败。