【问题标题】:Python Dictionary into a CSV将 Python 字典转换为 CSV
【发布时间】:2021-07-31 11:21:57
【问题描述】:

我正在从 Twitter 的 API 收集推文。我的代码正在返回一个我已转换为字典的字符串。我正在寻找通过创建列来存储这些数据的 CSV。我附上了一张我的 CSV 目前看起来像的图片。

当前 CSV 图像:

.

您对创建以下内容有什么建议;

期望的结果:

    with open('dict.csv', 'w') as csv_file:  
        writer = csv.writer(csv_file)
        for key, value in y.items():
           writer.writerow([key, value])
    #with open('my_file.csv', 'w') as f:
    #    [f.write('{0},{1}\n'.format(key, value)) for key, value in y.items()]

完整代码:

import requests
import os
import json
import pandas as pd
import csv
import sys
import time

bearer_token = "insert here"

search_url = "https://api.twitter.com/2/tweets/search/all"

query_params = {'query': '(Johnson&Johnson) -is:retweet -is:verified -baby -lotion -shampoo','tweet.fields': 'text', 'tweet.fields':'created_at', 'start_time':'2021-01-20T00:00:01.000Z', 'end_time':'2021-02-17T23:30:00.000Z'}
#query_params={'query':'(vaccine OR vaccinated) -is:retweet -is:verified -RT -baby -lotion -shampoo&start_time=2021-01-20T00:00:01.000Z&end_time=2021-02-20T23:30:00.000Z&max_results=10&tweet.fields=author_id,conversation_id,created_at,geo,id,lang,source,text&expansions=author_id&place.fields=full_name&user.fields=created_at,description,entities,id,location,name,url,username'}

def create_headers(bearer_token):
    headers = {"Authorization": "Bearer {}".format(bearer_token)}
    return headers

def connect_to_endpoint(url, headers, params):
    response = requests.request("GET", search_url, headers=headers, params=params)
    print('first:', response.status_code)
    if response.status_code != 200:
        raise Exception(response.status_code, response.text)
    return response.json()

def main():
    headers = create_headers(bearer_token)
    json_response = connect_to_endpoint(search_url, headers, query_params)
    x = json.dumps(json_response,sort_keys=True)
    y = json.loads(x)

if __name__ == "__main__":
    main()

【问题讨论】:

  • 不要附上文字图片。附上文字。对于想要使用您的示例数据的任何人来说,屏幕截图完全没有用处。
  • 你试过df = pd.DataFrame(y["data"]) ; df.to_csv("result.csv")吗?
  • 除此之外,还有数百(如果不是数千)关于如何在 Python 中将 dicts 转换为 CSV 的答案。您的问题并非特定于 Twitter,实际上它与 Twitter 完全无关。您只需拥有从 somewhere 获得的 dicts 列表,并希望将其转换为 CSV。四处寻找该主题的现有答案并尝试其中的几个。如果您对自己的尝试有特定的问题,欢迎提出。

标签: python json csv


【解决方案1】:

尝试使用 DictWriter,

import csv
with open(csv_file, 'w') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
    writer.writeheader()
    for data in dict_data:
        writer.writerow(data)

更多信息请参考以下链接,

How to save a Python Dictionary to a CSV File?

【讨论】:

    猜你喜欢
    • 2018-12-09
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    • 2017-11-08
    • 2017-09-13
    • 2018-08-13
    • 2021-12-22
    • 2021-04-01
    相关资源
    最近更新 更多