Задать вопрос
hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..

Как вставить в строку содержимое Dictionary?

Есть словарь. Например такой:
Dictionary<string, string> headers = new Dictionary<string, string>();

headers.Add("user-agent","mozilla");
headers.Add("pragma","no-cache");
headers.Add("referer","google.com");

И есть строка:
import requests

headers = {сюда вставить содержимое словаря} 
response = requests.get('test.com',headers=headers)

Мне нужно получить на выходе следующее:
import requests

headers = {'user-agent':'mozilla',
			'pragma':'no-cache',
			'referer':'google.com'}

response = requests.get('test.com',headers=headers)


Может есть что-то вроде шаблонизатора. Или как такое можно сделать? Перебирать словарь и конкатенировать строки - думаю это будет велосипед. Ведь словарей может быть 1,2 или 3. И размер словаря меняется.
  • Вопрос задан
  • 217 просмотров
Подписаться 2 Простой 13 комментариев
Решения вопроса 2
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Покури linq. Там можно что-то подобное сделать. Но это не точно
Ответ написан
edward_freedom
@edward_freedom
public static string PythonRequestTemplate(string headers)
        {
            var template = $@"import requests

            headers = {{ {
                headers
            } }}
            response = requests.get('test.com', headers = headers)";
            return template;
        }

var headers = new Dictionary<string, string>();

            headers.Add("user-agent", "mozilla");
            headers.Add("pragma", "no-cache");
            headers.Add("referer", "google.com");

            Console.WriteLine(PythonRequestTemplate(headers.Select(item => item.Key + ":" + item.Value).Aggregate((item1, item2) => item1 + ",\n" + item2)));
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@kttotto
пофиг на чем писать
Формат такой строки называется JSON. Есть много способов, как преобразовать dictionary к json. Например,

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Serialization;

Dictionary<string, string> headers = new Dictionary<string, string>();

headers.Add("user-agent","mozilla");
headers.Add("pragma","no-cache");
headers.Add("referer","google.com");

var jsonString = JsonConvert.SerializeObject(headers);
Console.WriteLine(jsonString);  // {"user-agent":"mozilla","pragma":"no-cache","referer":"google.com"}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы