将网站JSON数据转换为CSV python,返回JSON解码错误
我正在尝试使用以下代码将保存在文件中的URL:处的JSON转换为CSV:将网站JSON数据转换为CSV python,返回JSON解码错误,python,json,csv,Python,Json,Csv,我正在尝试使用以下代码将保存在文件中的URL:处的JSON转换为CSV: json_data_file = open('TTT json', 'r') content = json.load(json_data_file) csv_results = csv.writer(open("TTT_results.csv.csv", "w", newline='')) for item in content: print(item) csv_re
json_data_file = open('TTT json', 'r')
content = json.load(json_data_file)
csv_results = csv.writer(open("TTT_results.csv.csv", "w", newline=''))
for item in content:
print(item)
csv_results.writerow(item)
这将返回:json.decoder.JSONDecodeError:Expecting','delimiter:line 1 column 489351(char 489350)
,这是json“ll”:43.529}的这一部分中的'2',{“aa”:
我对为什么会这样感到困惑。看起来json格式不正确。您需要联系生成此json的人员进行修复 请参阅以下条目:
"cc": "Nick "Lionel" Berry(TriTalk)"
"cc": ""Sherpa" Dave (R&K Hyenas)"
这些引号没有正确转义。它必须是:
"cc": "Nick \"Lionel\" Berry(TriTalk)"
"cc": "\"Sherpa\" Dave (R&K Hyenas)"
在访问数据时,您可能请求了错误的接受编码。请通过指定您想要的是JSON响应而不是HTML负载来下载数据:
import requests
url = 'https://wtrl.racing/assets/js/miscttt170620.php?wtrlid=63'
headers = {'Accept': 'application/json'}
response = requests.get(url, headers=headers)
data = response.json()
看起来json格式不正确。您需要与生成此json的人员联系以进行修复 请参阅以下条目:
"cc": "Nick "Lionel" Berry(TriTalk)"
"cc": ""Sherpa" Dave (R&K Hyenas)"
这些引号没有正确转义。它必须是:
"cc": "Nick \"Lionel\" Berry(TriTalk)"
"cc": "\"Sherpa\" Dave (R&K Hyenas)"
在访问数据时,您可能请求了错误的接受编码。请通过指定您想要的是JSON响应而不是HTML负载来下载数据:
import requests
url = 'https://wtrl.racing/assets/js/miscttt170620.php?wtrlid=63'
headers = {'Accept': 'application/json'}
response = requests.get(url, headers=headers)
data = response.json()
啊,这是一个问题,我真的不能做任何关于如何改变它的想法,也许一个for循环有一个replace,我不确定从这里去哪里。@PythonIsBae检查更新的响应!如果你提供正确的标题,这一切都会起作用!我正要提到……从浏览器中,你会得到一个html页面,而没有正确的转义。如果你选择并如果你使用python的请求模块或wget或curl之类的命令行工具,你可以正确地获得json编码的内容。@因此,如果我运行该代码,我的CSV是
d,a,t,a
,如果我打印(数据)
它返回UnicodeEncodeError:“charmap”编解码器无法对169648-169649位置的字符进行编码:字符映射到
^我想这就是它无法正确写入csvAh的原因,这是一个问题,我真的无法做到这一点。关于如何更改它,可能是一个for循环,它有一个替换,我不确定从哪里开始我在这里。@PythonIsBae检查更新的响应!如果您提供了正确的标题,一切都会正常!我想说的是……从浏览器中,您会得到一个html页面,但没有正确的转义。如果您选择并保存所谓的json数据,您会收到错误。但是如果您使用python的请求模块或命令行工具(如wget或curl),您会得到json en正确编码的东西。@flakes因此,如果我运行该代码,我的CSV是d,a,t,a
,如果我print(data)
它返回unicodeincodeerror:“charmap”编解码器无法对169648-169649位置的字符进行编码:字符映射到
^我假设这就是它不能正确写入CSV的原因